使用选择不同的AngularJs级联下拉列表

时间:2014-05-21 12:08:30

标签: javascript json angularjs

我有一个页面,我输出了一个汽车列表。此列表中的结果来自Json文件。

这是我的Json的一个例子:

[
  {
    "id": "1590",
    "brand": "Peugeot",
    "type": "508"
  },
  {
    "id": "1591",
    "brand": "Peugeot",
    "type": "308"
  },
  {
    "id": "1594",
    "brand": "Honda",
    "type": "Civic"
  },
  {
    "id": "1605",
    "brand": "Renault",
    "type": "Clio"
  },
  {
    "id": "1607",
    "brand": "Renault",
    "type": "Laguna"
  }
]

我需要通过以下方式过滤结果:品牌和类型。所以我有两个名为' selectedBrand'的DropDown列表。和' selectedType'。

我使用此标记将单个Brands加载到DropDown列表中:

<select id="brands" data-ng-model="selectedBrand" data-ng-options="car.brand for car in cars | unique:'brand' | orderBy:'brand'">
</select>

这没关系,给我一个DropDown列表,其中包含独特的品牌,如DISTINCT SELECT。

现在我希望第一个DropDown列表在第一个DropDown列表具有选定值时进行过滤。 这是我对第二个DropDown列表的标记:

<select id="type" data-ng-model="selectedType" data-ng-options="car.type for car in cars | filter:{brand:selectedBrand} | unique:'type' | orderBy:'type'">
</select>

但这不起作用。它显示了包含每个品牌类型的完整列表。

我想我需要一些方法来在第一个DropDown列表更改时触发它? 我对AngularJs很新,所以任何帮助都会受到赞赏。

我不知道这是否是从Json结果中获取这些DISTINCT值的最佳方法。我只有完整的Json结果集和所有数据,这就是我必须使用的。

1 个答案:

答案 0 :(得分:1)

关注the docs您需要ng-model-options="{ updateOn: 'your option here' }"来执行此绑定