Можно ли загружать и вставлять угловые модули в приложение во время выполнения с помощью angularAMD?
У меня есть ng-grid как зависимость при определении приложения:
var app = angular.module('myApp', ['ngGrid']);
Но не все мои представления и контроллеры нуждаются в ngGrid, поэтому я подумал, можно ли загрузить и внедрить ngGrid в приложение при определении контроллеров, которые в нем нуждаются?
Я пытался что-то вроде этого, но это не сработало:
app.js:
var app = angular.module('app',[]);
ProductListCtrl.js:
define(['app', 'ng-grid'], function (app) {
'use strict';
app.register.controller('ProductListCtrl', ['$scope', 'ngGrid', function ($scope) {
name = $injector.get('ngGrid')
$scope.name = name
}]);
});
Какие-либо предложения?
1 ответ
Решение
angularAMD
обеспечивает ngload
Плагин RequireJS, позволяющий загружать существующие модули AngularJS. добавлять ngload
на ваш main.js
затем сделайте:
define(['app', 'ngload!ng-grid'], function (app) { ... }
Смотрите документацию для более подробной информации.