1

我有两个组合,第二个组合取决于第一个组合。因此,当从第一个组合中选择选项时,应重新加载第二个组合的选项。但是第二个组合的ng-model如何监听第一个组合的ng-model的变化并更新 Angular 2 中的选项列表呢?

4

1 回答 1

0

一种方法是将(change)事件处理程序附加到第一个组合:

template: `
  <select [(ngModel)]="c1Selection" #c1 (change)="onChange(c1.value)">
    <option *ngFor="#v of combo1">{{v}}</option>
  </select>
  <select [(ngModel)]="c2Selection">
    <option *ngFor="#v of combo2">{{v}}</option>
  </select>
`

class App {
  combo1 = 'one two three'.split(' ');
  combo2Map = {
    one:   '1 11 111'.split(' '),
    two:   '2 22 222'.split(' '),
    three: '3 33 333'.split(' ')
  };
  c1Selection = 'one';
  c2Selection = '';
  combo2 = this.combo2Map[this.c1Selection];
  constructor() {}
  onChange(c1Value) {
    this.combo2 = this.combo2Map[c1Value];
    this.c2Selection = '';
  }
}

Plunker

于 2015-12-03T05:40:52.443 回答