我有两个标签,必须对它们进行过滤。 在第二个标签中一切正常,但在第一个没有。 我填写这个问题涉及到这个部分(ng-model):
<ul search-list=".letter" model="search.district">
<li class="letter" ng-repeat="letter in alphabet.letter">{{ letter }}</li>
</ul>
以及:
<input id="q" type="text" ng-model="search.district " />
所以第二个标签工作正常:
<div ng-repeat="district in districts | filter:search:startsWith" class="district">
<h4 class="district-name">{{ district.district }}</h4>
<a href="{{ district.link }}">Some info</a>
<ul class="district-cities">
<li ng-repeat="city in district.cities ">
<a href="{{ city.url }}">
{{ city.name }}
</a>
</li>
</ul>
</div>
但如何让作品成为第一部分我不知道......
这是DEMO
答案 0 :(得分:1)
在HTML中执行此更改
Timeslot.where("start_date >= ? AND end_date <= ?", Wed, 01 Jul 2015 18:00:00 SGT +08:00, Wed, 01 Jul 2015 21:00:00 SGT +08:00)
这是updatd Plunker
答案 1 :(得分:0)
在startsWith
方法中,您具体引用了对象的district
属性。此属性在城市对象上不存在:
$scope.startsWith = function (actual, expected) {
var lowerStr = (actual + "").toLowerCase();
var e = angular.isString(expected) ? expected.toLowerCase() :
// district is not present in City object
expected.district.toLowerCase();
return lowerStr.indexOf(e) === 0;
}
答案 2 :(得分:0)
由于您使用的是search.district
,它会尝试访问城市的.district
值。
您可以使用search.name
,而不是......
<ul search-list=".letter" model="search.name">
......在这里......
<input id="q" type="text" ng-model="search.name" />
然后在区域阵列的每个区域将district
重命名为name
。