Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Angular 2中更新从属组合_Angular_Angular2 Forms - Fatal编程技术网

如何在Angular 2中更新从属组合

如何在Angular 2中更新从属组合,angular,angular2-forms,Angular,Angular2 Forms,我有两个组合,第二个组合取决于第一个组合。因此,当从第一个组合中选择选项时,应该重新加载第二个组合的选项。但是第二个组合的ng model如何监听第一个组合的ng model的更改并更新Angular 2中的选项列表呢?一种方法是将(change)事件处理程序附加到第一个组合: template: ` <select [(ngModel)]="c1Selection" #c1 (change)="onChange(c1.value)"> <option *ngFor

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

一种方法是将
(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 = '';
  }
}
模板:`
{{v}
{{v}
`
类应用程序{
combo1='一两三'。拆分('');
combo2Map={
一个:“11111”。分开(“”),
两个:“222222”。分开(“”),
三:“33333”。分开(“”)
};
c1选择='一';
c2Selection='';
combo2=this.combo2Map[this.c1选择];
构造函数(){}
onChange(c1值){
this.combo2=this.combo2Map[c1Value];
这个.c2Selection='';
}
}

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

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 = '';
  }
}
模板:`
{{v}
{{v}
`
类应用程序{
combo1='一两三'。拆分('');
combo2Map={
一个:“11111”。分开(“”),
两个:“222222”。分开(“”),
三:“33333”。分开(“”)
};
c1选择='一';
c2Selection='';
combo2=this.combo2Map[this.c1选择];
构造函数(){}
onChange(c1值){
this.combo2=this.combo2Map[c1Value];
这个.c2Selection='';
}
}

NgModel指令有一个事件ng模型更改,您可以将处理程序附加到该NgModel指令有一个事件ng模型更改,您可以将处理程序附加到该事件ng模型更改