Почему RequireJS не передает jQuery в псевдоним функций?

Я скачалsample-project дляlatest-release изRequireJS, Ихdocumentation implies все загруженное передается в список параметров связанной функции (в соответствующем порядке).

Поэтому я решил попробовать ... но, похоже, это не работает!

Firebug (net tab) shows jQuery as being loaded: so RequireJS obvioulsy did that part successfully Firebug (console tab) shows '$ is not a function'

My question is: Почему псевдоним не заполняется?

MY CODE LOOKS LIKE:

<code><html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>

    <script src="Scripts/require.js" type="text/javascript"></script>

    <script type="text/javascript">

        require(["scripts/jQuery/Core/jquery-1.7.2.min"], function ($) {

            // jQuery is not passed-into the function, so the alias fails!
            $(function () {
                var stop = "";
            });
        });

    </script>

</head>
<body>
    <form id="form1" runat="server">
    </form>
</body>
</html>
</code>

THIER SAMPLE LOOKS LIKE:

<code>//Inside scripts/main.js
require(["some/module", "a.js", "b.js"], function(someModule) {
    //...
});
</code>
 Prisoner ZERO13 апр. 2012 г., 13:50
Bueller? Beuller?

Ответы на вопрос(3)

README.md& Quot; для примера проекта RequireJS + jQuery. Использование jQuery сопряжено со многими сложностями, поэтому вам нужно решить, как лучше всего использовать его для своего проекта во время начальной установки. Однако, как только вы выяснили, что лучше для вас, и реализовали его, это больше не должно быть проблемой.

Большая часть осложнений также связана с тем фактом, что jQuery не является настоящим модулем AMD, у них просто есть взлом в кодовой базе, чтобы сделать определение, если он обнаружит, что функция определения доступна. Например, это означает, что имя модуля jQuery всегда будет «jquery» (обратите внимание на строчную букву «q»), если вы не заключите ее в оболочку самостоятельно, поэтому, если вы определите путь для нее в своей конфигурации, вы ДОЛЖНЫ иметь ключ с именем «jquery». (опять же, в нижнем регистре «q») или будет несоответствие. Это нас поразило, когда мы впервые установили RequireJS в нашем проекте (мы назвали ключ «jQuery»).

 Prisoner ZERO13 апр. 2012 г., 17:25
Я буду ... спасибо мужчина!
Решение Вопроса

в противном случае он сам не зарегистрируется (поскольку jQuery использует именованное определение).

// create an alias that points to proper file
require.config({
  paths : {
    jquery : "http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min"
  }
});

// require jquery usign the path config
require(["jquery"], function ($) {
    console.log($);
});

Это основная причина, по которой named определяет анти-шаблон и должен использоваться только при необходимости (если у вас есть несколько модулей внутри одного файла).

 03 дек. 2012 г., 11:17
благодарю вас! единственный ответ, который работал для меня, чтобы включить автономный файл jQuery.
 Prisoner ZERO13 апр. 2012 г., 17:20
Спасибо, спасибо, спасибо, спасибо! Это сводило меня с ума!

Вы делаете запрос на "Scripts / require.js" а также для «scripts / jQuery / Core / jquery-1.7.2.min». Взгляните на вкладку Net в Firebug ... Держу пари, что вы генерируете там 404.

Ваш ответ на вопрос