angularjs绑定函数调用span而不触发事件

时间:2017-03-09 01:21:57

标签: angularjs function label ng-bind

我使用ng-repeat来填充我的表格。应该通过不同的函数调用再次动态填充表中的一列。

以下是我的代码段。

<tr ng-repeat="item in ctrl.items">      
  <td><span ng-bind="item.name"></span></td>
  <td><span ng-bind="getItemDetails(item.id)"></span></td>
</tr>

我有一系列的项目。我需要在表格中显示这些项目。项目名称将出现在项目对象中,但是项目详细信息将由另一个需要项目ID的函数调用填充。

在使用 ng-bind 时(如上面的代码所示),我面临两个问题。

  1. 即使数组有1个项目,也会多次调用函数。有时会继续冻结我的浏览器和服务器内存不足问题
  2. 项ID不会始终传递给函数。有时它是未定义的。
  3. 我不确定 ng-bind 是否是正确的使用指令。 ng-model 虽然不起作用。是否有其他指令或其他方式来做到这一点?

    我怎样才能做到这一点?

    修改

    以下是jsfiddle网址:https://jsfiddle.net/grubxaur/

    如果您检查浏览器控制台,则可以看到该函数被调用两次。我想这叫做N不。 N不是的时代。表中的列。

1 个答案:

答案 0 :(得分:0)

我已经调整了一下我的实现,以摆脱这个问题。我没有在 ng-repeat 中调用函数,而是在 ng-repeat 之前使用angular.forEach修改了控制器中的数组。调用

类似下面的代码。

angular.forEach(self.items, function(item){
     item.details = $scope.getItemDetails(item.id);
});