我应该使用$ scope还是指令来创建函数?

时间:2014-10-29 22:14:50

标签: angularjs angularjs-directive angularjs-scope

我在角度进行了一些测试以显示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和事件处理程序是正确的?

1 个答案:

答案 0 :(得分:2)

我说如果你想让它成为一个可以重复使用的组件,你应该使用指令。

可以使用ng-click进行简单警报,但想象一下需要更多DOM操作。在这种情况下,指令是更好的解决方案。

这是关于AngularJS指令的一个很好的解读:The Hitchhiker’s Guide to the Directive