在link函数中,有没有一种更“角度”的方法来将函数绑定到click事件?
现在,我正在做..。
myApp.directive('clickme', function() {
return function(scope, element, attrs) {
scope.clickingCallback = function() {alert('clicked!')};
element.bind('click', scope.clickingCallback);
} });
这是一种棱角分明的方式,还是一种丑陋的黑客手段?也许我不应该这么担心,但我是这个框架的新手,我想知道做事情的“正确”方法,特别是随着框架的发展。
发布于 2013-02-12 11:27:13
您可以在指令中使用控制器:
angular.module('app', [])
.directive('appClick', function(){
return {
restrict: 'A',
scope: true,
template: '<button ng-click="click()">Click me</button> Clicked {{clicked}} times',
controller: function($scope, $element){
$scope.clicked = 0;
$scope.click = function(){
$scope.clicked++
}
}
}
});
有关Angular guide中的指令的更多信息。对我非常有帮助的是来自官方Angular博客文章About those directives的视频。
发布于 2013-02-12 09:32:29
我认为这很好,因为我见过很多人这样做。
如果只是在指令中定义事件处理程序,则不必在作用域上定义它。下面就可以了。
myApp.directive('clickme', function() {
return function(scope, element, attrs) {
var clickingCallback = function() {
alert('clicked!')
};
element.bind('click', clickingCallback);
}
});
发布于 2013-12-24 14:16:41
难道不应该简单地说:
<button ng-click="clickingCallback()">Click me<button>
为什么要编写一个新指令来将单击事件映射到作用域上的回调?ng-click已经为你做到了这一点。
https://stackoverflow.com/questions/14823917
复制相似问题