2015-12-02 57 views
1

我有两个组合,第二个组合取决于第一个组合。因此,当从第一个组合中选择选项时,应该重新加载第二个组合的选项。但是第二个组合的ng-model怎么能听到第一个组合的ng-model的更改并更新Angular 2中的选项列表?如何在Angular 2中更新相关的组合2

+0

NgModel指令有一个事件NG-模型的变化,您可以将处理程序,由于https: //angular.io/docs/ts/latest/api/common/NgModel-directive.html – Chandermani

回答

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