我在angular中进行了一些测试以显示alert
,两者都很好。
这个例子:
<a href="" test>Foo</a>
js(外部控制器):
myApp.directive('test', function($compile){
return function(scope, element, attrs){
element.bind('click', function(){
alert('Foo');
});
}
});
这个例子:
<a href="" ng-click="test()">Foo</a>
js(内部控制器):
$scope.test = function(){
alert('Foo');
}
就像我说的,两者都有效。但是,对于操纵DOM和事件处理程序,哪一个是正确的呢?
例如,当您想使其成为可重用的组件时,应该使用指令。
将ng-click
用于一个简单的警报是可以的,但想象一下什么时候需要更多的DOM操作。在这种情况下,指令是一个更好的解决方案。
这是一本关于AngularJS指令的好读物:该指令的搭车指南。