我有这个对象。

{
   "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”,“ 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“}}

最佳答案

您收到错误消息是因为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>

关于javascript - 错误:[filter:notarray] ng-options中的期望数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35140163/

10-11 02:31
查看更多