我试图在嵌套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 Fiddle损坏了http://jsfiddle.net/eminentstyle/v5g4u948/2/
如果我手动插入预期的表达式结果,在第20行过滤器:
{group: '.c'}
,则可以看到第一部分http://jsfiddle.net/eminentstyle/kwmj5mtu/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的组。例如 。 “ ie”与“ e”匹配。