角度自定义指令调用内联函数

时间:2015-03-03 16:40:34

标签: angularjs

我正在以某种方式构建一个自定义指令

app.directive('confirmation', function() {
  return {
    restrict: 'A',
    scope: {
     onConfirm:"&"
    },
    link: function (scope, element) {
      $(element).confirmation(function(){
        onConfirm: function(){
          scope.onConfirm();
        }
       });
    }
  };
});

并像这样使用

    <script>
        function DoSomethingOnConfirm(){
                     //Do Something;
                    }
    </script>
<a confirmation on-confirm="DoSomethingOnConfirm()">Delete</a>

我无法访问控制器,因此功能&#34; DoSomethingOnConfirm()&#34; 是一个普通的javascript函数,我怎么能在指令中调用这个函数,我试着直接调用它但它没有工作。

1 个答案:

答案 0 :(得分:1)

根据您的问题,我了解您想从您的指令中调用javascript。我相信在这种情况下,你想在用户点击锚标记指令时调用一些函数。

这是代码

<script>
var app = angular.module('app', []);
app.directive('confirmation', function() {
  return {
    restrict: 'A',
    link: function (scope, element, attr) {         
        element.on('click',function(){
            eval(attr.fname);
        });
    }
  };
});
function DoSomethingOnConfirm(){
    alert("Are you sure want to delete?");
}
function AddMe(){
    alert("Added!!!");
}


</script>

<a confirmation href="javascript:;" fname="DoSomethingOnConfirm()">Delete</a>
<a confirmation href="javascript:;" fname="AddMe()">Add</a>

我没有从范围获取外部函数名称,而是从属性获取它并触发该函数。

我希望这会有所帮助