到达错误10 $ digest()迭代的解决方法

时间:2016-08-08 15:24:15

标签: angularjs

我正在页面上显示数据库中的数据(使用Web API):

<div ng-repeat="Item in Items">
     <div class="row">
        <div class="col-sm-3">{{Item.Id}}</div>
        <div class="col-sm-3">{{Item.Desc)}}</div>
        <div class="col-sm-6">{{Item.CollectionID}}</div>

    </div>
</div>

以上工作正常,但是当我尝试获取实际的Collection Name时,我遇到了一个问题:

<div ng-repeat="Item in Items">
    <div class="row">
        <div class="col-sm-3">{{Item.Id}}</div>
        <div class="col-sm-3">{{Item.Desc)}}</div>
        <div class="col-sm-6">{{GetCollectionName(Item.CollectionID)}}</div>

    </div>
</div>

这是我的控制器函数,用于获取集合名称:

 $scope.GetCollectionName = function (CollId) {

      $http.get('http://Server/App/api/GetCollName/' + CollId).
      then(function (result) {
            $scope.CollectionName = result.data;
            return $scope.CollectionName;
       });
  }

除了修改我的基础查询之外,还有更好的方法吗?

3 个答案:

答案 0 :(得分:0)

#!/bin/zsh
cd ~/Projects/python/project_name
source ~/virtualenvs/project_name/bin/activate
python ./backend/manage.py runserver 
tab
cd front
gulp watch

答案 1 :(得分:0)

在循环中调用函数是不好的做法。并且您在angularjs中使用表达式标记来创建观察者。始终确保要显示的所有必要记录已存在于关联的范围变量中。

答案 2 :(得分:0)

此处的基本思路是使用ng-init为ng-repeat中的每个项初始化本地 CollectionName[Item.CollectionID]变量。然后,您可以使用该局部变量输出<div ng-repeat="Item in Items" ng-init="GetCollectionName(Item.CollectionID)"> <div class="row"> <div class="col-sm-3">{{Item.Id}}</div> <div class="col-sm-3">{{Item.Desc)}}</div> <div class="col-sm-6">{{CollectionName[Item.CollectionID]}}</div> </div> </div> $scope.CollectionName = []; $scope.GetCollectionName = function (CollId) { $http.get('http://Server/App/api/GetCollName/' + CollId) .then(function (result) { $scope.CollectionName[CollId] = result.data; }); }

Here's a working demo

$(function(){
  $(".wolny").click(function() {
    var godzina = this.id;
    var minuta = this.name;
    alert(godzina + ":" + minuta);
  });