我无法弄清楚为什么我的指令没有从父页面调用回调函数。你能帮忙吗?
角度代码:
angular
.module('myApp')
.directive('testDirective', function () {
return {
bindToController: {
foo: '@',
myCallback: '&'
},
controller: function () {
},
controllerAs: 'vm',
restrict: 'E',
replace: true,
scope: {},
template: '<div>Foo is: {{ vm.foo }} <button data-ng-click="vm.myCallback()">Click to call Callback</button></div>'
};
});
angular
.module('myApp')
.controller('ParentController', function () {
this.myParentCallback = function () {
alert('Called the parent callback function');
};
});
HTML代码:
<body>
<div data-ng-app="myApp" data-ng-controller="ParentController as ctrl">
<test-directive foo="bar!" my-callback="ctrl.myParentCallBack"></test-directive>
</div>
</body>
如您所见,
foo
绑定正确,但是我无法让myCallback
工作...有什么想法吗?
它在plnkr中:(http://plnkr.co/edit/niVL5iAeOJ6XTpkpL9fu?p=preview)
最佳答案
这是一个案例问题:在回调中使用小写b传递ctrl.myParentCallback。
另外,您的plnkr带有vm.myParentCallBack的错误。用。。。来代替:
<test-directive foo="bar!" my-callback="ctrl.myParentCallback()"></test-directive>
http://plnkr.co/edit/VnMUekTSZyk5WagsPqkL
关于javascript - AngularJS-使用指令调用回调函数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33040725/