我有两个选择框,当第一个选择框改变时,第二个选择框会自动更新。
<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事件。
有关如何做到这一点的任何想法?
答案 0 :(得分:5)
您希望在第二个选择框上触发ng-change
事件,这相当于模型region
更改时的情况。所以你可以使用观察者来实现它。
$scope.$watch('region', function (newValue, oldValue) {
console.log(newValue, oldValue);
})
答案 1 :(得分:1)
当您只需从控制器手动调用该函数时,为什么要触发onchange事件?另外,请不要忘记您可以手动设置在ng-model中指定的属性值,并且其值将反映在select元素中。