当学习egghead视频中指令间通信的内容时,建议我们使用控制器向'this'对象添加函数并从其他指令中访问它。
视频中使用的完整代码是:向this对象添加函数 相关的控制器代码如下:
视频中使用的完整代码是:向this对象添加函数 相关的控制器代码如下:
controller: function($scope){
$scope.abilities = [];
this.addStrength = function(){
$scope.abilities.push("Strength");
}
this.addSpeed = function(){
$scope.abilities.push("Speed");
}
this.addFlight = function(){
$scope.abilities.push("Flight");
}
},
我在想,为什么不将函数添加到$scope本身,尤其是当我们使用隔离作用域时?
向 $scope 添加函数的代码:向 $scope 添加函数
相关控制器代码如下:
controller: function($scope){
$scope.abilities = [];
$scope.addStrength = function(){
$scope.abilities.push("Strength");
};
$scope.addSpeed = function(){
$scope.abilities.push("Speed");
};
$scope.addFlight = function(){
$scope.abilities.push("Flight");
};
},
或者为什么需要控制器函数呢?为什么不能使用链接函数来实现相同的结果?
在链接函数中向$scope添加功能:使用链接函数而不是控制器
相关的控制器和链接函数如下:
controller: function($scope){
$scope.abilities = [];
$scope.addStrength = function(){
$scope.abilities.push("Strength");
};
$scope.addSpeed = function(){
$scope.abilities.push("Speed");
};
$scope.addFlight = function(){
$scope.abilities.push("Flight");
};
},
我相信使用控制器和对象有其合理的原因,但我无法理解为什么需要这样做。