【问题标题】:AngularJS update ng-repeat by param depending on ng-repeat arrayAngularJS 根据 ng-repeat 数组按参数更新 ng-repeat
【发布时间】:2016-02-12 09:17:52
【问题描述】:

我有一个带有 html 的对象 array=[1,2,3,4,5]。在 ng-repeat 中更新的正确方法是什么?我举个例子:

<ul>
<li ng-repeat="nr in array">
 <p> {{ nr}} </p>
    <ul>
      <li ng-repeat="stuff in stuffs(nr)"> {{stuff}} </li>
     </ul>
 </li>
</ul>

我尝试在控制器中创建范围函数:

 scope.stuffs = function(ret){
           ......
 return arrayConditionedbyNr;
}

但抛出错误:

未捕获的错误:达到 10 次 $digest() 迭代。中止! 在最后 5 次迭代中触发的观察者:...

你能指导我正确的方向吗?

【问题讨论】:

  • 问题出在......。如果您每次都重新创建一个新数组,那么您将面临这个问题。向我们展示一个完整的最小示例。
  • 能否请您显示 stuffs 数组?
  • 如果您使用 lodash 或下划线,您可以使用_.range 实用函数,如下所示:lodash.com/docs#range。给定_.range(4),它将返回 [0,1,2,3]
  • 我已经在回答我的代码时发布了

标签: angularjs ng-repeat


【解决方案1】:

这是我的html:

<h2> Last Updates  </h2>
<ul>
<li  ng-repeat="cat in eachCateg"> 
<h3> {{cat}} </h3>
     <ul>

   <li ng-repeat="game in eachGame(cat)"> 
            <p>{{game.id}}</p>  

    </li> -->

    </ul>
</li>
</ul>    

这是我的控制器:

applicaton.controller('homeController', ['$scope','$http','$stateParams','$q',function(scope,http,stateParams,q){     


  // server  request with http angular.js, taking category list from JSON for scope.eachCateg
                var getCategories = http.get('data/menu/menu.json')
                 .success(function(result){
                        scope.eachCateg = result.categories;
                 });

               scope.eachGame = function(categ) {

                var httpRequest = http.get('data/games/'+ angular.lowercase(categ)+'/urlThumb.json')
                        .success(function(result){
                            return result;
                        })

                return q.all([httpRequest]).then(function(result){

                               return result[0].data;
                             })

              }
 }]);

所以这就是我尝试更新列表的方式,但我得到了那个错误。似乎它给了我一个承诺,而不是实际数据。我如何才能将所需数据发送给我?

【讨论】:

    【解决方案2】:

    也许我错过了你的问题.. 但是下面这个 plunker 对我有用 http://plnkr.co/edit/iCepagIKA1OFDjBnB35I?p=preview

    也许你需要&lt;div ng-repeat="test in getArr(item.id) track by $index"&gt;

    【讨论】:

      猜你喜欢
      • 2014-08-18
      • 2018-01-28
      • 1970-01-01
      • 2015-10-23
      • 1970-01-01
      • 1970-01-01
      • 2013-11-23
      • 2017-12-22
      • 1970-01-01
      相关资源
      最近更新 更多