Можно ли загружать и вставлять угловые модули в приложение во время выполнения с помощью 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) { ... }

Смотрите документацию для более подробной информации.

Другие вопросы по тегам