首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Angular指令的链接函数中使用ng-click vs bind

在Angular指令的链接函数中使用ng-click vs bind
EN

Stack Overflow用户
提问于 2013-02-12 09:14:39
回答 5查看 113.3K关注 0票数 67

在link函数中,有没有一种更“角度”的方法来将函数绑定到click事件?

现在,我正在做..。

myApp.directive('clickme', function() {   
  return function(scope, element, attrs) {
    scope.clickingCallback = function() {alert('clicked!')};
    element.bind('click', scope.clickingCallback);   
} });

这是一种棱角分明的方式,还是一种丑陋的黑客手段?也许我不应该这么担心,但我是这个框架的新手,我想知道做事情的“正确”方法,特别是随着框架的发展。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 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++
         }
       }
     }
   });

Demo on plunkr

有关Angular guide中的指令的更多信息。对我非常有帮助的是来自官方Angular博客文章About those directives的视频。

票数 61
EN

Stack Overflow用户

发布于 2013-02-12 09:32:29

我认为这很好,因为我见过很多人这样做。

如果只是在指令中定义事件处理程序,则不必在作用域上定义它。下面就可以了。

myApp.directive('clickme', function() {
  return function(scope, element, attrs) {
    var clickingCallback = function() {
      alert('clicked!')
    };
    element.bind('click', clickingCallback);
  }
});
票数 36
EN

Stack Overflow用户

发布于 2013-12-24 14:16:41

难道不应该简单地说:

<button ng-click="clickingCallback()">Click me<button>

为什么要编写一个新指令来将单击事件映射到作用域上的回调?ng-click已经为你做到了这一点。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14823917

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档