处理ng-include中包含的代码中的ng-click事件

时间:2015-04-30 22:25:48

标签: javascript angularjs angularjs-ng-include

我创建了包含少量按钮的文档标题,并使用ng-include在我的一些观看中添加了标题。
每个视图都有自己的控制器,每个按钮都有点击事件 为了防止代码复制,处理这种情况的最佳做法是什么? 提前谢谢。

1 个答案:

答案 0 :(得分:1)

您可以将代码的这一部分移动到指令中,以便只放置指令元素就足够了,代码将根据需要重用。

<强> HTML

<my-directive template-url="abc.html" click-function="refreshData()"></my-directive>

<强>指令

app.directive('myDirective', function(){
   return {
       restrict: 'AE',
       templateUrl: function(ele, attr){
           return attr.templateUrl
       },
       link: function(scope, element, attrs){
          element.find('button').on('click', function(){
              scope.$apply(function(){
                  scope.$eval(attrs.clickFunction())
              });
          })
       }

   }
})

以上指令,您可以在属性中传递templateUrl名称,该名称可用于ng-include&amp;对于点击事件,您需要在clickFunction属性上传递点击事件参考。这将调用点击按钮。