2013-09-16 2 views
1

Я создаю новое приложение angularjs и хочу использовать requirejs для управления моими зависимостями. Я изо всех сил пытаюсь заставить это работать и задаться вопросом, не ошибаюсь ли я что-то. Я также хочу использовать twitter bootstrap и restangular, чтобы сделать приятные звонки. Попытка установить это приводит к ошибкам, когда вы не можете их найти. Моя главная, JS конфигурация выглядит следующим образом:Получение Angularjs с Requirejs, работающим с перезагружаемым и twitter bootstrap

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

I попробовали несколько вариантов с этим, но просто не могут заставить его играть красиво вместе. Есть ли что-то еще, что мне не хватает - я сравнил его с несколькими примерами, и все, кажется, в порядке.

ответ

0

Смешивание Угловое и Требование сложное. У меня есть экспериментальный проект в GitHub (https://github.com/nikospara/angular-require-lazy), который работает в некотором хакерском стиле. Вы можете посмотреть в качестве примера.

Мнения по этому проекту также являются положительными.


Для ваших ошибок:

Открыть чистую консоль (например, в Firebug) и проверьте пути, вызываемые RequireJS. Правильны ли эти пути?

Угловые модули (в отличие от модулей Требование/AMD) имеют собственные зависимости. Вы должны убедиться, что .js-файлы Угловых модулей загружаются после углового. Один из способов сделать это - подкрепить их, например. для restangular было бы что-то вроде:

shim: { 
    ... 
    restangular: { 
     deps: ["underscore", "angular"] 
    } 
} 

В противном случае вы можете загрузить угловые и другие сценарии со стандартными <script> тегов, в правильном порядке.

Это общие направления. Если вы не можете найти причину проблем, возможно, вам следует отправить еще какой-нибудь код; скрипка/plunkr также была бы великолепной, если это было возможно.

Связанный пост в SO: Inject module dynamically, only if required

Смежные вопросы