AngularJS根据ng-repeat阵列通过param更新ng-repeat

时间:2015-11-11 09:45:36

标签: angularjs ng-repeat

我有一个带有html的对象数组= [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次迭代中被解雇:......

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

2 个答案:

答案 0 :(得分:0)

也许我错过了你的问题..但是这个跟随的plunker适合我 http://plnkr.co/edit/iCepagIKA1OFDjBnB35I?p=preview

也许你需要<div ng-repeat="test in getArr(item.id) track by $index">

答案 1 :(得分:0)

这是我的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;
                             })

              }
 }]);

所以这是我尝试更新列表的方式,我得到了这个错误。似乎它给了我一个承诺而不是实际的数据。我怎么能发送给我作为回报所需的数据?