我很难在ng-repeat下的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();
};
我是棱角分明的新人。
答案 0 :(得分:1)
这是因为在编写<span ng-click="itemClick(cb)">{{item}}</span>
时,您希望cb
成为范围内的属性,但不是。
将函数设置为全局函数并不是一个很好的做法,就像你正在尝试使用cb
一样。为什么你不能在alert('hey')
内写下你想要运行的任何代码($scope.itemClick
) - 函数?
答案 1 :(得分:0)
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:"&"}
如果要调用点击功能,则执行$scope.click({$event:event})
,此对象将作为l
传递。
所以你的全局创建的cb在你的范围内不可用。
问候