Вопрос по javascript – Требуется плагин JS (order.js)

8

http://requirejs.org/

Я недавно скачал require.js 2.0 и получаю сообщение об ошибке в моей консоли:

Uncaught TypeError: Object function (){var g=ga.call(arguments,0),e;if(f&&v(e=g[g.length-1]))e.__requireJsBuild=!0;g.push(d);return b.apply(null,g)} has no method 'nameToUrl'

Плагин order.js все еще поддерживается requirejs? Я не вижу его документации на веб-сайте.

Когда я пытаюсь удалить файл, сценарий ломается.

В моем индексном файле я включил скрипт requirejs в раздел head:

<!DOCTYPE html>
<html>
    <head>
        <title>
            My Mobile Application
        </title>
        <link rel="stylesheet" href="http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.css" />
        <link rel="stylesheet" href="public/css/style.css" />
        <script data-main="scripts/main.js" src="scripts/require.js"></script>
    </head>
    <body></body>
</html>

Тогда в моем файле main.js:

requirejs.config({
    //By default load any module IDs from js/lib
    baseUrl: 'js/lib',
    //except, if the module ID starts with "app",
    //load it from the js/app directory. paths
    //config is relative to the baseUrl, and
    //never includes a ".js" extension since
    //the paths config could be for a directory.
    paths: {
        app: '../app',
        assets: '../assets',
        views: '../app/views',
        templates: '../app/templates',
        collections: '../app/collections',
        models: '../app/models'
    }
});

// Start the main app logic.
requirejs([
    'jquery/jquery',
    'assets/jqm.config',
    'jquery/mobile',
    'text'
]);

require([
    'app'
    ],
    function( App ){
        $(document).ready( function(){
            App.initialize();
        });
    }
);

Я прослеживаю, чтобы в App.initialize не было ошибок, а App.initialize - это просто географическое местоположение. Requjs просто запрашивают order.js, и когда я помещаю код, он имеет ту же ошибку, что и упомянутая выше.

Спасибо!

Прошу прещения за это. Ред. :) Joseph Ledesma Gabito
Stack Overflow is not a Mind Reader, Какой код? Joseph

Ваш Ответ

2   ответа
17

order больше не поддерживается, это правильно. Это было удалено в пользуshim опция конфигурации:

So, the the order plugin has been removed and following the lead of Tim Branyen and Dave Geddes, of use and wrap respectively, requirejs 2.0 integrates that kind of dependency tree specification directly in requirejs.

Требовать обновления 2.0 примечания -https://github.com/jrburke/requirejs/wiki/Upgrading-to-RequireJS-2.0

Кроме того, проверьтеshim документация на сайте RequireJS -http://requirejs.org/docs/api.html#config-shim

Я использую JQuery, кстати, и ранее я скачалlink файл по указанной ссылке, я использовал его require-jquery.js вместо require.js, теперь я получаю эту ошибку: плагин не определен. Очень сложно отлаживать ошибки вида. Joseph Ledesma Gabito
Хорошо, большое спасибо, это действительно очень помогло. Попробую сейчас и дам знать, работает ли он :) Joseph Ledesma Gabito
очень полезный, до сих пор не знал о шим!
В элементе проверки chrome я получаю эту ошибку: Не удается прочитать свойство "нормализовать" неопределенного. Вздох* Joseph Ledesma Gabito
2

//This is our main applicatoon boot loader or bootstrap
//here we are loading necessary scripts dependencies like
//jquery, jqm.config, mobile, text


requirejs.config({
    baseUrl: 'js/libs',
    //except, if the module ID starts with "app",
    //load it from the js/app directory. paths
    //config is relative to the baseUrl, and
    //never includes a ".js" extension since
    //the paths config could be for a directory.
    paths: {
        app: '../app',
        assets: '../assets',
        views: '../app/views',
        templates: '../app/templates',
        collections: '../app/collections',
        models: '../app/models'
    }
});

// Start the main app logic.

require(["jquery","assets/jqm.config","jquery/mobile","text","app"], 
    function(
    $,
    config,
    mobile,
    text,
    App
    ) {
    //the jquery.alpha.js and jquery.beta.js plugins have been loaded.
    $(function() {
        App.initialize();
    });
});

Похожие вопросы