AngularJS指令调用回调函数

时间:2015-07-07 13:45:52

标签: angularjs

我正在尝试制作一个dropdownlist指令,我希望它有一个像onItemSelected="myCallbackFunction(selectedItem)"这样的属性,我该怎么办呢?有人可以提供一个例子吗?

2 个答案:

答案 0 :(得分:2)

您可以使用&绑定(隔离范围函数表达式绑定)

.directive("sample", [function() {
    return {
        restrict: "A",
        scope: {
            myFunc: "&"
        },
        link: function(scope, elem, attrs) {
            scope.myFunc(); //whenever you wanna call it
        }
   }
}])

和HTML

<div sample my-func="someScopeFunction()"></div>

我建议阅读:https://gist.github.com/CMCDragonkai/6282750以获取指令绑定说明。

答案 1 :(得分:0)

要补充tymeJV的answer,如果您不使用隔离范围,则可以使用$eval$parse

app.directive('sample', function($parse){
  return {
    restrict:'A',
    link:function(scope, elem, attrs) {
      $parse(attrs.evt)(scope);

      scope.$eval(attrs.eval);
    }
  };
});

普兰克:http://plnkr.co/edit/P1hggqBXMBKBMqJtr6Zg?p=preview