我有一个像这样的HTML按钮
<md-button type="button" ng-click="commentDelete(item,$index)" aria-label="change address" >
<md-icon md-svg-icon="img/ic_highlight_remove_24px.svg"></md-icon>
</md-button>
这是我的控制器
var commentDelete = function(item,index){
console.log('working')
}
$scope.commentDelete =commentDelete;
这没有任何问题。 但如果我尝试这样的事情
var myCtrl= function(item,index){
return {
commentDelete : function(item,index){
console.log('working')
}
}
}
$scope.commentDelete =myCtrl.commentDelete
然后它不会触发 commentDelete 函数。这是为什么?提前谢谢
答案 0 :(得分:3)
因为您为$scope.commentDelete
分配了myCtrl
的属性(myCtrl是一个函数,它试图在其上或commentDelete
中找到Function
。
myCtrl
只是一个函数,它返回一个带有函数commentDelete
的对象。
var myCtrl= function(item,index){
return {
commentDelete : function(item,index){
console.log('working')
}
}
}
$scope.commentDelete = myCtrl.commentDelete
如果您致电myCtrl
然后获取commentDelete,则会有效
$scope.commentDelete = myCtrl().commentDelete;