Javascript 是否可以在运行时使用angularAMD延迟加载并将angular模块注入应用程序?

Javascript 是否可以在运行时使用angularAMD延迟加载并将angular模块注入应用程序?,javascript,angularjs,angular-amd,Javascript,Angularjs,Angular Amd,定义应用程序时,我将ng grid作为依赖项: var app = angular.module('myApp', ['ngGrid']); 但并不是我所有的视图和控制器都需要ngGrid,所以我在想,在定义需要ngGrid的控制器时,是否可以将ngGrid加载并注入到应用程序中 我尝试过这样的事情,但没有成功: app.js: var app = angular.module('app',[]); ProductListCtrl.js: define(['app', 'ng-grid'],

定义应用程序时,我将ng grid作为依赖项:

var app = angular.module('myApp', ['ngGrid']);
但并不是我所有的视图和控制器都需要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
    }]);

});

有什么建议吗?

angularAMD
提供了一个
ngload
RequireJS插件,允许您加载现有的AngularJS模块。将
ngload
添加到您的
main.js
中,然后执行以下操作:


定义(['app',ngload!ng grid'],函数(app){…}


有关更多详细信息,请参阅。

谢谢您的建议,但我仍然无法使其正常工作。我无法访问Plunker,因此创建了GitHub repo()。请您花点时间帮我检查一下。谢谢!顺便说一句,它抛出的错误是:uncaughttypeerror:无法读取未定义的ng-grid-2.0.11的属性“factory”。debug.js:209错误:[$injector:unpr]未知提供程序:ngGridProvider@NicolasZ您需要创建一些仅加载一个页面的内容,因为我无法调试您的整个应用程序。我看到的错误是"未知提供程序:simpleClockModuleProvider起初我认为这是ngGrid指令的问题,因为它本身包含多个角度模块。因此我在主页中添加了另一个角度指令,您只需单击“产品列表”链接或导航到“”即可查看ngGrid的情况,非常抱歉给您带来的不便,谢谢再次感谢您的耐心!angularAMD中有一个bug,现在已在主分支中修复。我将最新版本包含在您的项目中,并将工作版本推送到您给我的分支中。您还需要将jquery依赖项添加到ng网格中。