如何使用角度填充选择选项

时间:2016-08-31 22:35:17

标签: javascript jquery angularjs

我试图使用angular ng options填充select中的值。在我的数组对象中,如果数组中没有'id'属性,我不应该在select中添加值。

期望:

应仅填充数组对象中具有“id”属性的值。

当前行为:

目前它没有正确过滤,并且没有id属性的对象在选择选项中变为空。添加了图像当前的外观,它没有跳过没有'id'属性的数组属性。

图像:

enter image description here

JSON:

[
  {
    "name": "abc"
  },
  {
    "id": 123,
    "name": "def"
  },
  {
    "id": 456,
    "name": "ghi"
  }

]

HTML:

<select id="selectBox" ng-model="vm.selectedVal" ng-change="vm.selectChange()"
ng-options="myobj.id as (myobj.name ? (myobj.name + ' - ' + (myobj.id | formatId)) : (myobj.id | formatId)) for myobj in (vm.myobj | filter:{id:'!!'}) track by myobj.id">
</select>

1 个答案:

答案 0 :(得分:1)

您的代码运行良好,空白不是数组项,但未设置模型值,因此它正在添加项目,提供默认值,如&#34; - 选择一个项目 - &#34;

试试这个:

<select id="selectBox" 
      ng-model="vm.selectedVal"
      ng-options="item.id as item.name for item in list  | filter:emptyOrNull">
      <option value="">Select One</option>
</select>

在控制器上:

$scope.emptyOrNull = function(item){
  return !(item.id == null || item.id == undefined)
}