我有这个对象。
{
"0":{
"id":"7",
"nombre":"127",
"ciudad":"1"
},
"1":{
"id":"8",
"nombre":"cll 155",
"ciudad":"1"
},
"2":{
"id":"10",
"nombre":"Cra 30",
"ciudad":"1"
},
"3":{
"id":"30",
"nombre":"Repuestos",
"ciudad":"1"
},
"4":{
"id":"6",
"nombre":"Ibagué",
"ciudad":"3"
},
"5":{
"id":"9",
"nombre":"Villavicencio",
"ciudad":"2"
}
}
如果我在ng-options
中使用它,它可以完美运行并创建选项。
<select name="user_dealer"
ng-model="formModel.user_dealer"
ng-options="dealer.nombre for dealer in concesionarios">
<option value="" ng-if="!formModel.user_dealer">Concesionario</option>
</select>
但是当我添加过滤器时:
<select name="user_dealer"
ng-model="formModel.user_dealer"
ng-options="dealer.nombre for dealer in concesionarios | filter: {ciudad:1}">
<option value="" ng-if="!formModel.user_dealer">Concesionario</option>
</select>
我收到此错误
错误:[filter:notarray]预期的数组但收到了: { “0”:{ “ID”: “7”, “农布雷”:” 127" , “城”: “1”}, “1”:{ “ID”: “8”, “农布雷”:“CLL 155" , “城”: “1”}, “2”:{ “ID”: “10”, “农布雷”:“CRA 30" , “城”: “1”}, “3”:{ “ID”: “30”, “农布雷”:” REPUESTOS “ ”城“: ”1“}, ”4“:{ ”ID“: ”6“, ”农布雷“:” 伊瓦格 “ ”城“: ”3“}, ”5“:{ ”ID“: ”9“, ”农布雷“:” 比亚维森西奥”, “城”: “2”}}
答案 0 :(得分:1)
您收到错误,因为ngFilter需要数组,而不是对象。您可以将concesionarios
对象转换为数组,并使用HTML执行以下操作:
<select name="user_dealer"
ng-model="formModel.user_dealer"
ng-options="dealer as dealer.nombre in concesionarios | filter: {ciudad:1}">
<option value="" ng-if="!formModel.user_dealer">Concesionario</option>
</select>
答案 1 :(得分:1)
Angular's documentation on filters州:
从数组中选择项目的子集并将其作为新数组返回。
concesionarios
对象不是数组,因此filter
不起作用。 concesionarios
对象应如下所示:
[
{
"id":"7",
"nombre":"127",
"ciudad":"1"
},
{
"id":"8",
"nombre":"cll 155",
"ciudad":"1"
},
{
"id":"10",
"nombre":"Cra 30",
"ciudad":"1"
},
... // other objects
]