我很难在ng-reeat下的ng-click中调用回调函数。下面是片段。
它正在调用ng-click函数,但当该调用回调函数时-它失败了-未定义-cb不是函数消息
HTML部分
<div ng-repeat="item in items">
<span ng-click="itemClick(cb)">{{item}}</span>
</div>
Javascript
....
<script type="text/javascript">
function cb(){
alert('Hey');
}
</script>
角度
...
$scope.itemClick = function(cb) {
cb();
};
我对棱角分明是个新手。
这是因为在编写<span ng-click="itemClick(cb)">{{item}}</span>
时,您希望cb
是作用域上的属性,但它不是。
像您尝试使用cb
一样,将函数设置为全局的做法不是很好。为什么不能直接在$scope.itemClick
-函数中编写想要运行的代码(alert('hey')
)呢?
angular将取代itemClick(cb)
有点v1[...];var v0;if("cb" in s){v0 = s.cb} else if("cb" in l){v0 = l.cb} return v1(v0)
。
s
是作用域,l
是当您想将变量传递到在指令中定义的函数中时可以定义的对象:{click:"&"}
当您想调用click函数时,执行$scope.click({$event:event})
,此对象将作为l
传递
因此全局创建的cb在您的作用域中不可用。
问候