Получение Angularjs с Requirejs, работающей с Restrict и загрузчиком Twitter
Я создаю новое приложение angularjs и хочу использовать requirejs для управления своими зависимостями. Я изо всех сил пытаюсь заставить это работать и задаюсь вопросом, просто ли я что-то неправильно понимаю. Я также хочу использовать твиттер-бутстрап и restangular, чтобы совершать спокойные звонки. Попытка настроить это приводит к ошибкам невозможности найти его. Моя основная конфигурация js выглядит следующим образом:
require.config({
paths: {
angular: '../vendor/angular',
twitterbootstrap: '../vendor/bootstrap/ui-bootstrap-tpls-0.6.0',
restangular: '../vendor/restangular',
domReady: '../vendor/domReady'
},
shim: {
angular : {'exports' : 'angular'},
restangular: {
deps: ['underscore']
}
}
});
require([
'angular',
'app',
'domReady',
'twitterbootstrap',
//'underscore',
'restangular',
],
function (angular, app, domReady) {}...
Я получаю ошибки с этим:
угловой не определяется
нет модуля myApp
нет модуля twitterbootstrap
Я пробовал несколько вариантов с этим, но просто не могу заставить его играть вместе. Есть ли что-то еще, что я упускаю - я сравнил это с несколькими примерами, и все, кажется, в порядке.
1 ответ
Смешивать Angular и Require сложно. У меня есть экспериментальный проект в GitHub ( https://github.com/nikospara/angular-require-lazy), который работает каким-то хакерским способом. Вы можете посмотреть в качестве примера.
Комментарии к этому проекту также приветствуются.
За ваши ошибки:
Откройте сетевую консоль (например, в Firebug) и проверьте пути, вызываемые RequireJS. Верны ли эти пути?
Угловые модули (в отличие от модулей Require/AMD) имеют собственные зависимости. Вы должны убедиться, что файлы.js модулей Angular загружаются после angular. Один из способов сделать это - подправить их, например, для прямоугольной формы это будет что-то вроде:
shim: {
...
restangular: {
deps: ["underscore", "angular"]
}
}
В противном случае вы можете загрузить угловой и другие скрипты со стандартным <script>
теги, в правильном порядке.
Это общие направления. Если вы не можете найти причину проблем, возможно, вам следует опубликовать еще немного кода; скрипка / планкр также была бы отличной, если это возможно.
Связанный пост в SO: Внедрить модуль динамически, только если требуется