我应该使用$scope或指令来生成函数吗



我在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指令的好读物:该指令的搭车指南。

最新更新