Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 执行角度函数_Javascript_Angularjs_Angular Material - Fatal编程技术网

Javascript 执行角度函数

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){

我有一个像这样的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){
   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')}