这个咖啡脚本代码试图创建一个角度提供者,但我收到了这样的信息:Provider' ItemsProvider'必须定义$ get factory方法。
我设置了$ get方法。知道发生了什么事吗?
'use strict'
app = angular.module('logica-erp')
app.provider 'ItemsProvider', [ ->
this.$get = ->
return {
}
]
无法加载此消息:
Error: [$injector:modulerr] Failed to instantiate module logica-erp due to:
[$injector:pget] Provider 'ItemsProvider' must define $get factory method.
修改 这是生成的javascript:
(function() {
'use strict';
var app;
app = angular.module('logica-erp');
app.provider('ItemsProvider', [
function() {
return this.$get = function() {
return {};
};
}
]);
}).call(this);
答案 0 :(得分:1)
CoffeeScript引入了语法糖涂层,读者和专家可能都很难理解。将它编译为JS以查看正在进行的操作总是一个好主意。隐性回报似乎是我实践中最大的麻烦制造者。
在这种情况下,CS代码被编译为
app.provider('ItemsProvider', [
function() {
return this.$get = function() {
return {};
};
}
]);
这里,provider构造函数返回值this.$get
(函数)而不是this
对象。构造函数不应该返回任何东西(除了罕见的情况):
app.provider('ItemsProvider', [
function() {
this.$get = function() {
return {};
};
}
]);
小心箭头。