5

我有两个选择框,当第一个选择框更改时,第二个选择框会自行更新。

<label>Region</label>
<select ng-model="region" 
        ng-change="clear(1)" 
        ng-options="l.region for l in locations"
></select>
<br />
<label>Country</label>
<select ng-model='country'
        ng-change="clear(2)" 
        ng-options="c.country for c in region.countries"
></select>

我的位置是一个 json 对象,如下所示:

[
  {region: "Europe", countries: [{country: "France"}, {country: "UK"}/*, ...*/]},
  {region: "Africa", countries: [{country: "Cameroon"}, {country: "Algeria"}]}
  /*, ...*/
]

这一切都以这种方式正常工作。

当我想将第一个选择框的值设置为欧洲时,它开始变得复杂,我想在第二个选择框上触发 ng-change 事件。

关于如何做到这一点的任何想法?

4

2 回答 2

5

您想ng-change在第二个选择框上触发事件,相当于模型region更改时的场景。所以你可以使用观察者来实现它。

$scope.$watch('region', function (newValue, oldValue) {
    console.log(newValue, oldValue);
})
于 2013-08-04T04:22:04.693 回答
1

当您可以简单地从控制器手动调用函数时,为什么要触发 onchange 事件?另外不要忘记您可以手动设置您在 ng-model 中指定的属性的值,并且它的值将反映在 select 元素中。

于 2013-04-21T15:59:51.400 回答