我关注this Angular-Meteor tutorial。还有这样的代码片段:
angular.module('socially').directive('partiesList', function () {
return {
restrict: 'E',
templateUrl: 'parties-list.html',
controllerAs: 'partiesList',
controller: function ($scope, $reactive) {
$reactive(this).attach($scope);
this.newParty = {};
this.helpers({
parties: () => {
return Parties.find();
}
});
this.addParty = () => {
Parties.insert(this.newParty);
this.newParty = {};
};
this.removeParty = (party) => {
Parties.remove({_id: party._id});
};
}
};
});
我主要关注() => {}
语法。如果我在控制器声明中使用箭头函数语法它不起作用:
...
controller: ($scope, $reactive) => { //this does not work
$reactive(this).attach($scope);
this.newParty = {};
this.helpers({
parties: () => {
return Parties.find();
}
});
...
当我可以使用箭头功能时,有人可以解释我吗?什么时候不能?
答案 0 :(得分:1)
它不起作用,因为箭头函数不像常规函数那样创建新的this
上下文,而是使用父函数。
在定义控制器时,它很重要,而在定义帮助器时则不然。
有关更详细的答案,您还可以在此处查看:https://github.com/Urigo/angular-meteor/issues/965#issuecomment-165916592