我在角度进行了一些测试以显示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和事件处理程序是正确的?
答案 0 :(得分:2)
我说如果你想让它成为一个可以重复使用的组件,你应该使用指令。
可以使用ng-click
进行简单警报,但想象一下需要更多DOM操作。在这种情况下,指令是更好的解决方案。
这是关于AngularJS指令的一个很好的解读:The Hitchhiker’s Guide to the Directive。