Благодаря отличному article from Dan Wahlin мне удалось реализовать ленивую загрузку угловых контроллеров и сервисов. Однако, похоже, нет чистого способа ленивых модулей, независимых от нагрузки.Lazy loading Модули AngularJS с RequireJS
Чтобы лучше объяснить мой вопрос, предположим, что у меня есть приложение будет структура, как показано ниже, не RequireJS:
// Create independent module 'dataServices' module with 'Pictures' object
angular.module("dataServices", []).factory("Pictures", function (...) {...});
// Create 'webapp' ng-app, with dependency to 'dataServices', defining controllers
angular.module("webapp", ['dataServices'])
.controller("View1Controller", function (...) {...})
.controller("View2Controller", function (...) {...});
Вот пример приложения с RequireJS в Plunker:
http://plnkr.co/aiarzVpMJchYPjFRrkwn
Ядро проблема заключается в том, что Angular не позволяет добавить зависимость от ng-app
после создания экземпляра. В результате мое решение заключается в использовании angular.injector
для извлечения экземпляра объекта Picture
, который будет использоваться в моем View2Controller
. См. Файл js/scripts/controllers/ctrl2.js
.
Это создает 2 проблемы для меня:
- инжектированных услуги выполняется вне угловых и поэтому весь асинхронный вызова должен заканчиваться $ объема $ применяется()
- Messy кода, в котором какой-то объект может быть введен. используя стандартный угловой синтаксис, в то время как другие требуют явного использования инжектора.
Может кто-нибудь из вас разобраться, как ленивый независимый от нагрузки модуль с использованием RequireJS и каким-то образом подключить этот модуль к угловому, так что может использоваться нормальный синтаксис зависимости угловой зависимости?
Примечание:
Вопрос на ленивой загрузке независимого модуля. Одним простым решением этого конкретного примера является создание объекта «Картинки» с использованием кэшированных поставщиков $ во время ng-app.config
, но это не то, что я ищу. Я ищу решение, которое работает с сторонним модулем, например angular-resource
.
я обнаружил это [решение] [1] с JQuery и решимостью $ routeProvider [1]: http://stackoverflow.com/a/28199498/4504198 –
@marcoseu: OFFTOPIC: пожалуйста, попробуйте тоже просмотрите этот вопрос, связанный с angularAMD. : http://stackoverflow.com/questions/31288001/how-to-use-chart-js-with-angular-chart-using-requirejs – VBMali