在我的项目中,我希望延迟加载的模块可以添加自己的状态,所以我找到了ui-router-extras。这对我来说真的很有用,但是当我想在延迟加载的模块中使用 ng-grid 时,如 demo 中的 module1,module1.js 文件如下所示:
define(['angularAMD', 'ngGrid'], function () {
var app = angular.module("module1", ['ui.router','ngGrid']);
...
main.js 文件如下所示:
require.config({
waitSeconds: 100,
paths: {
"angularAMD": "../../lib/angularAMD",
...
"jQuery": "../../lib/jquery",
"ngGrid": "../../lib/ng-grid-2.0.14.debug"
},
shim: {
"angular": { exports: "angular" },
...
"ngGrid": ["angular", "jQuery"],
},
deps: ["app"]
});
但是我从 ng-grid 得到了一个例外:“未捕获的 TypeError:无法读取未定义的属性‘工厂’”。我找到了发生异常的ng-grid源代码:
angular.module('ngGrid.services').factory('$domUtilityService',['$utilityService', '$window', function($utils, $window) {....}
于是我发现在延迟加载的模块中,通过 angular.module('mymodule') 获取模块返回的是未定义的。有什么我忘了写的吗,还是有另一种方法可以在带有 ui-router-extras 的延迟加载模块中使用 ng-grid 或其他插件?