0
的index.html的指令工作为什么孤立的范围 “和” 不与controllerAs在angularJs
<div ng-app="phoneApp">
<div ng-controller="ctrl as AppCtrl">
<div phone dial="ctrl.callHome('called home!')"></div>
</div>
</div>
app.js:
var app = angular.module('phoneApp', []);
app.controller("AppCtrl", function ($scope) {
var ctrl = this;
ctrl.callHome = function (message) {
alert(message);
};
});
app.directive("phone", function() {
return {
scope: {},
bindToController : {
dial: "&"
},
controller : controller,
controllerAs : 'controllerVM',
templateUrl : 'node.html'
};
function controller(){
controllerVM.onClick = function(){
controllerVM.dial();
}
}
});
node.html:
<button ng-click="controllerVM.onClick()">Button</button>
当我点击电话指令的按钮时,它应该调用AppCtrl的函数callHome,但它没有被调用。
,当我从每一个地方删除controllerAs并直接调用模板的指令拨号功能,其工作正常
所以请帮助我我失去了什么?
在此先感谢:)
感谢您的快速回复。你可以请回答一个查询 上述代码工作正常,但是当我在回调函数内调用拨号函数。它不工作。在我的电话指令中,我正在发出http请求,并且当它成功时,我正在调用http请求的回调内的拨号函数来通知AppCtrl控制器。 – rkrock
我发现了错误。我传递的数据如controllerVM.dial(id),但它应该作为controllerVM.dial({id:id})传递; – rkrock