我正在尝试使用嵌套ng-repeat中过滤器中第一个ng-repeat的值。
具体来说是{{alpha.value}}
。这在第一次重复时渲染得很好,请注意过滤器和h3
标记。
然而,表达式在第二次重复中呈现为文本,同样不是过滤器,因此重复是空的,因为它不匹配。我觉得我错过了一些非常明显的东西。有什么想法吗?感谢
<div ng-repeat="alpha in alphabet" ng-hide="(tlds | filter: {group: '.{{alpha.value}}'}).length<1" ng-cloak="cloak">
<h3>{{alpha.value}}</h3>
<ul class="list-group">
<li class="list-group-item" ng-repeat="tld in tlds | filter: {group: '.{{alpha.value}}'} | filter: {name: query} | orderBy: 'name'" ng-cloak="cloak">
<a href="/downloads/pdftld/{{tld.pdf}}" target="_blank">{{tld.name}}</a>
</li>
</ul>
</div>
JS摆弄它http://jsfiddle.net/eminentstyle/v5g4u948/2/
如果我手动插入预期的表达式结果,第20行过滤器:{group: '.c'}
,您可以看到第一部分的预期结果http://jsfiddle.net/eminentstyle/kwmj5mtu/2/
答案 0 :(得分:2)
我想你想要这个:http://jsfiddle.net/v5g4u948/3/
<div class="container" ng-app="Tlds">
<div class="page-header">
<h1>Tlds</h1>
</div>
<div class="row">
<div class="col-sm-12">
<input type='search' class='form-control' placeholder='Search' ng-model='query' />
</div>
</div>
<div class="row">
<div class="col-sm-12" ng-controller="TldsCtrl">
<div ng-repeat="alpha in alphabet" ng-hide="(tlds | filter: {group: '{{alpha.value}}'} | filter: {name: query}).length<1" ng-cloak="cloak">
<h3>{{alpha.value}}</h3>
<ul class="list-group">
<li class="list-group-item" ng-repeat="tld in tlds | filter: {group: alpha.value} | filter: {name: query} | orderBy: 'name'" ng-cloak="cloak"> <a href="/downloads/pdftld/{{tld.pdf}}" target="_blank">{{tld.name}}</a>
</li>
</ul>
</div>
</div>
</div>
</div>
小心filter: {group: '.{{alpha.value}}'
表示过滤包含 alpha.value的所有群组。例如 。 &#39;即&#39;匹配&#39; e&#39;。