首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >通过JSON属性过滤角模板获得摘要无限循环

通过JSON属性过滤角模板获得摘要无限循环
EN

Stack Overflow用户
提问于 2016-02-23 21:39:40
回答 1查看 121关注 0票数 0

我试图在指令模板中过滤ng-重复的结果。下面的解决方案在屏幕上显示得很好,但是我现在得到了错误:Uncaught Error: [$rootScope:infdig] 10 $digest() iterations reached. Aborting!我引用了这个页面,解决方案没有工作:https://docs.angularjs.org/error/$rootScope/infdig

对我怎么解决这个有什么建议吗?还是有更好的方法去做?

HTML:

代码语言:javascript
运行
复制
<filtered-set items="businesses | filter : {cat: 'jedi'} : true | filter:query |orderBy: orderList"></filtered-set>

模板:

代码语言:javascript
运行
复制
<div class="bscroll mThumbnailScroller" data-mts-axis="x">
    <ul>
      <li class="business-card" data-ng-repeat="business in items" data-ng-click="select(business)">
        <h2>{{business.name}}</h2>
        <p>{{business.cat}}</p>
      </li>
    </ul>
  </div>

角JS:

代码语言:javascript
运行
复制
.controller('starWarsCtrl', function ($scope) {
  $scope.businesses = [
    {"name": "Obi-Wan Kenobi",
     "index":88,
      "cat": "jedi"},
    {"name": "Yoda",
     "index":69,
      "cat":"jedi"},
    {"name": "Lando",
     "index":31,
      "cat": "smuggler"},
    {"name": "Han Solo",
     "index":90,
      "cat": "smuggler"},
    {"name": "Darth Vader",
     "index":98,
      "cat": "sith"},
    {"name": "Jar-Jar Binks",
     "index":80,
      "cat": "alien"},
    {"name": "Mace Windu",
     "index":45,
      "cat": "jedi"},
    {"name": "Chewy",
     "index":76,
      "cat": "smuggler"}
  ];

.directive('filteredSet', function() {
  return {
    restrict: 'E',
    scope: {
      items: '='
    },
    templateUrl: 'partials/filtered-set.html'
  };
});
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-24 17:49:10

也许有办法解决我的上述问题,因为以下是我所做的:

我在控制器中创建了这个函数,它基本上获取了与"cat"属性匹配的所有JSON属性:

代码语言:javascript
运行
复制
     angular.forEach($scope.data, function(item) {
    //item.cat is a string
    if (categories.indexOf(item.cat) == -1) {
      categories.push(item.cat);
    }
});
    return categories;
  }

以及我的HTML,它本质上是ng-repeat中的一个ng-repeat

代码语言:javascript
运行
复制
<div data-ng-app="app" data-ng-controller="starWarsCtrl">
    <ul>
        <li data-ng-repeat="cat in getCategories()">
          <h2>{{cat}}</h2>
          <div ng-click="select(i)" ng-repeat="i in data | filter:{cat: cat}">
    <p>{{i.name}}</p>
  </div>
      </li>
    </ul>
</div>

我还用我的解决方案创建了一个代码库:http://codepen.io/Auzy/pen/adeqrP

我希望这能帮到你!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35588743

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档