angularjs 中使用 ng-repeat 的 ng-click 函数中未定义的回调函数

callback function undefined in ng-click function using ng-repeat in angularjs

我很难在 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>

Angular

...
$scope.itemClick = function(cb) {
    cb();
};

我是 angular 的新手。

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 在您的范围内不可用。

问候

这是因为在编写 <span ng-click="itemClick(cb)">{{item}}</span> 时,您希望 cb 在范围上是 属性,但事实并非如此。

像这样将函数放在全局并不是很好的做法,就像您尝试使用 cb 一样。为什么你不能直接在 $scope.itemClick-function 中写任何你想要 运行 ( alert('hey')) 的代码?