我有两个对象数组,如下所示:
$scope.countries = [
{'id' : 1, 'country_name':'India'},
{'id' : 10, 'country_name':'Australia'},
{'id' : 2, 'country_name':'England'}
];
$scope.states = [
{'state_id' : 1, 'state_name':'Delhi', 'country_id':{'id':1 ,'country_name':'India'}},
{'state_id' : 5, 'state_name':'London', 'country_id':{'id':2 ,'country_name':'England'}},
{'state_id' : 2, 'state_name':'Victoria', 'country_id':{'id':10 ,'country_name':'Australia'}}
];
我正在尝试根据country_id对象内的id过滤状态,如下所示:
<select ng-model="sellerCountry" ng-options="item.id as item.country_name for item in countries" required>
<option value="">Select Country</option>
</select>
<select ng-model="sellerState" ng-options="item.id as item.state_name for item in states | filter : {country_id: { id : sellerCountry}, }" ng-disabled="!sellerCountry">
<option value="">Select State</option>
</select>
在这里,当我选择印度(其中ID = 1)从第一个选择框,我应该只得到德里在第二选择要显示,但它显示德里(COUNTRY_ID。ID = 1)和维多利亚(COUNTRY_ID。ID = 10)
需要帮助来解决这个问题。提前致谢。
默认情况下,过滤器会执行contains
搜索,您应该通过true
向过滤器传递第3个参数来使过滤器进行严格比较。
ng-options="item.id as item.state_name for item in states
| filter : {country_id: { id : sellerCountry} }: true"
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句