为什么 @ 被 _at_ 代替了? (咖啡脚本)
Why @ replaced with _at_? (CoffeeScript)
我对 Angular 中的 classes 有疑问。
当我尝试为控制器创建一些 class 时,我看到这个错误:
Error: [$injector:unpr] Unknown provider: _at_$scopeProvider <- _at_$scope <- MainController
Class代码:
class MainController
constructor: (@$scope, @$log) ->
@timestamp = Date.now() - 900000
angular
.module 'app'
.controller 'MainController', MainController
结果我得到了这个:
(function() {
var MainController;
MainController = (function() {
function MainController(_at_$scope, _at_$log) {
this.$scope = _at_$scope;
this.$log = _at_$log;
this.timestamp = Date.now() - 900000;
}
return MainController;
})();
angular.module('app').controller('MainController', MainController);
}).call(this);
怎么了?
您更新到咖啡版本 1.9。 属性 参数的命名有一个不兼容的变化。看我对的回答,影响你。由于您使用的是angular,因此您可以使用数组符号进行注入。如果你想 minify/uglify 你的代码,无论如何这是唯一正确注入的方法,因此我建议始终这样做。
要么像这样:
class MainController
constructor: (@$scope, @$log) ->
@timestamp = Date.now() - 900000
angular
.module 'app'
.controller 'MainController', ['$scope', '$log', MainController]
或者像这样:
MainCtrlWithInjects = ['$scope', '$log',
class MainController
constructor: (@$scope, @$log) ->
@timestamp = Date.now() - 900000
]
angular
.module 'app'
.controller 'MainController', MainCtrlWithInjects
我对 Angular 中的 classes 有疑问。 当我尝试为控制器创建一些 class 时,我看到这个错误:
Error: [$injector:unpr] Unknown provider: _at_$scopeProvider <- _at_$scope <- MainController
Class代码:
class MainController
constructor: (@$scope, @$log) ->
@timestamp = Date.now() - 900000
angular
.module 'app'
.controller 'MainController', MainController
结果我得到了这个:
(function() {
var MainController;
MainController = (function() {
function MainController(_at_$scope, _at_$log) {
this.$scope = _at_$scope;
this.$log = _at_$log;
this.timestamp = Date.now() - 900000;
}
return MainController;
})();
angular.module('app').controller('MainController', MainController);
}).call(this);
怎么了?
您更新到咖啡版本 1.9。 属性 参数的命名有一个不兼容的变化。看我对
要么像这样:
class MainController
constructor: (@$scope, @$log) ->
@timestamp = Date.now() - 900000
angular
.module 'app'
.controller 'MainController', ['$scope', '$log', MainController]
或者像这样:
MainCtrlWithInjects = ['$scope', '$log',
class MainController
constructor: (@$scope, @$log) ->
@timestamp = Date.now() - 900000
]
angular
.module 'app'
.controller 'MainController', MainCtrlWithInjects