将函数从控制器发送到我的angular指令

时间:2016-03-14 10:19:07

标签: angularjs function angularjs-directive angularjs-scope

我正在制作一个指令,我将templateUrl发送到一个html,其中有一个按钮。我想知道的是。我可以从我使用指令的控制器发送一个函数到我的指令,这样我可以在单击按钮时注册,然后输入调用函数。

我的templateUrl html网页

<div class'btn' ng-click='nestedinputFunction()'>Test button</div>

在我的控制器

的html页面上使用我的指令
<nested-click input-function='myFunction'></nested-click>

功能

的控制器
app.controller('testCtrl', ['$scope' function ($scope) {
    $scope.inputFunction = function(){
    alert("Function is being called!");
}

}]);

我的指示

app.directive('nestedClick', function () {
return {
    restrict: 'E',
    scope: {
        inputFunction: '=',
    },
    templateUrl: function (elem, attrs) {
        return '/AngularJS/Directives/nestedClick.html'
    },
    link: function (scope, element, attrs) {
      scope.nestedinputFunction = scope.inputFunction
    },
}

});

有人知道这是否可能,以及是否可以实现?

1 个答案:

答案 0 :(得分:0)

你应该使用'&amp;'结合。

app.directive('nestedClick', function () {
    return {
        restrict: 'E',
        scope: {
            nestedinputFunction: '&inputFunction',
        },
        templateUrl: function (elem, attrs) {
            return '/AngularJS/Directives/nestedClick.html'
        }
    }
});



<nested-click input-function='myFunction()'></nested-click>

以下是'&amp;'的简单解释绑定:https://thinkster.io/egghead/isolate-scope-am