Javascript 执行角度函数
我有一个像这样的html按钮Javascript 执行角度函数,javascript,angularjs,angular-material,Javascript,Angularjs,Angular Material,我有一个像这样的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 myCtrl= function(item,index){
<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 myCtrl= function(item,index){
return {
commentDelete : function(item,index){
console.log('working')
}
}
}
$scope.commentDelete =myCtrl.commentDelete
这是工作没有任何问题。
但是如果我尝试这样的事情
<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 myCtrl= function(item,index){
return {
commentDelete : function(item,index){
console.log('working')
}
}
}
$scope.commentDelete =myCtrl.commentDelete
然后它不会触发commentDelete功能。为什么呢?提前感谢,因为您为
$scope.commentDelete
分配了myCtrl
的属性(myCtrl是一个函数,它尝试在其上或函数中查找commentDelete
)。
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;
因为您为$scope.commentDelete
分配了myCtrl
的属性(myCtrl是一个函数,它尝试在其上或函数中查找commentDelete
)。
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;
我认为,myCtrl必须是使用此约定的对象(myCtrl.commentDelete)。因此,您应该将myCtrl声明为对象。var myCtrl={commentDelete:function(item,index){console.log('working')}}我认为,myCtrl必须是使用此约定的对象(myCtrl.commentDelete)。因此,您应该将myCtrl声明为对象。var myCtrl={commentDelete:function(item,index){console.log('working')}