Angular - 页面上的加载选择值重新加载

时间:2017-08-31 16:27:38

标签: javascript angular

我有一个组合框2,当选择另一个组合框1的值时,它会更新。为此,我使用了onChange()函数。但是当我保存对象并重新加载页面时,只显示组合框1的值。我认为这是因为组合框1的值被加载到onInit()函数中,而组合框2则等待调用onChange()方法。
有没有办法在组合框2上加载存储的值?这是我的代码(只有相关部分,如果需要其他代码,我会提供它)。

查看

<div>
        <select (change)="onChange($event.target.value)" [ngModel]="model.mycombo1" name="mycombo1" id="mycombo1">
            <option disabled hidden [value]="unusedValue">Scegli...</option>
          <option *ngFor="let d of combo1" [value]="d.id">{{d.descrizione}}</option>
        </select>
      </div>
      <div>
        <select [ngModel]="model.mycombo2" name="mycombo2" id="mycombo2">
              <option disabled hidden [value]="unusedValue">Scegli...</option>
              <option *ngFor="let d of combo2" [value]="d.id">{{d.descrizione}}</option>
          </select>
      </div>

组件

export class InsertComponent implements OnInit {

  combo1: Combo[];
  combo2: Combo[];

  constructor(private comboSrv: ComboService) { }

  ngOnInit() {

    this.comboSrv.getCombo1().then(dst => {
      this.combo1 = dst;
    });

  }

  onChange(idCombo1: number) {

    this.comboSrv.getCombo2(idCombo1).then(dst => {
      this.combo2= dst;
    });
  }
}

1 个答案:

答案 0 :(得分:0)

我解决了它在combo2函数中获取onInit值的问题。否则视图不知道如何在页面加载时初始化组合框。希望这个技巧可以帮助别人。