我一直在使用angular-seed作为入门项目,虽然它在过去一个月内改变了应用程序结构,但我决定查看angular-sprout
Angular-sprout没有更新的索引异步页面,所以我决定分叉代码并对其进行处理。我已正确连接所有内容,但现在当我尝试添加控制器时(通过module.controller()
功能,我收到一条错误消息,指出module.controller
未定义。
当我在angular.module('myModule')
页面上将index-async.html
记录到控制台时,我会使用正确的方法获得一个角度对象 - filter()
,service()
,provider()
等等 - 但controller
不存在:
module Object {
_invokeQueue: Array[0],
_runBlocks: Array[0],
requires: Array[0],
name: "application.controllers",
provider: function…}
_invokeQueue: Array[0]
_runBlocks: Array[0]
config: function (){c[d||"push"]([a,b,arguments]);return g}
constant: function (){c[d||"push"]([a,b,arguments]);return g}
directive: function (){c[d||"push"]([a,b,arguments]);return g}
factory: function (){c[d||"push"]([a,b,arguments]);return g}
filter: function (){c[d||"push"]([a,b,arguments]);return g}
name: "application.controllers"provider: function (){c[d||"push"]([a,b,arguments]);return g}
requires: Array[0]run: function (a){d.push(a);return this}
service: function (){c[d||"push"]([a,b,arguments]);return g}
value: function (){c[d||"push"]([a,b,arguments]);return g}
__proto__: Object
}
(抱歉格式糟糕。我会尝试获得更好的控制台副本。)
当我从index-async:
中记录controller
时
controller undefined details-controller.js:13
当我运行index-async页面时会发生这种情况。但是,在常规索引页面上,controller
已正确定义,并为我提供了一个角度方法:
controller function () {
invokeQueue[insertMethod || 'push']([provider, method, arguments]);
return moduleInstance;
} details-controller.js:13
有没有人遇到过这个?对于它的价值,似乎controller
是我唯一缺少的模块方法,我完全不知道为什么会这样。
答案 0 :(得分:0)
事实证明......我决定检查我正在使用的Angular-loader的版本。显然,角度加载器v1.0.0rc1似乎会导致此错误,即使我正在使用该版本的AngularJS。我将加载程序更新到更高版本,似乎出于某种原因解决了这个问题。
要注意,代码本身没有问题。事实证明,根据documentation,加载器会覆盖angular.module()
,这似乎是我遇到的问题的根源。
为此,我必须克隆angular-seed并运行npm run update-index-async
以获取最新版本的加载程序代码。将其复制到sprout项目似乎解决了Angular 1.0的问题。 (现在,为了使用最新版本的Angular。)如果您正在使用加载器的脚本标记(不将其直接注入到您的html页面中),您可能只需获取最新版本并链接到你的文件。