假设我有这个指令:
app.directive('person', function() {
return {
restrict: 'E',
controller: function($scope) {
$scope.sayHi = function() {
console.log('hi');
}
this.sayBye = function() {
console.log('goodbye')
}
},
link: function(scope, element, attrs) {
},
template: '<p ng-click="sayHi()">Hello</p>'
}
});
如果单击该元素,sayHi()
则将调用该元素,因为它附加到$scope
,但该sayBye
方法不起作用
我的问题:
是通过将模板附加到 $scope 来实现从模板调用控制器方法的唯一方法吗?
如果是这样,这是否会冒与其他指令函数发生冲突的风险,这些指令函数也可以以相同的方式附加到范围,或者每个指令都有自己的范围?
附加方法以
this
允许其他指令通过 访问这些方法的唯一原因是require
?
我假设最好在可能的情况下保持指令逻辑封装,因此任何建议都值得赞赏。