Angular2:查看不更新(Angular2 : View not updating)

2019-09-28 05:28发布

这里是一个其他的“观不改变”的问题

我有我需要的时候我选择名称更新组件。 但是,我不知道为什么,我有模式改变之前选择2倍的名称。 这就像一日一次,我选择不更新模型。

使用角2 4.0.0与materializeCSS(自动完成从Materialise的未来)

那么,我想直接有一次我选择显示的按钮。

这部分的HTML模板:

<form>
            <i class="material-icons prefix">search</i>
            <input id="search" type="text" name="autoComplete" materialize="autocomplete" [materializeParams]="[autocompleteInit]">
        </form>
        <div *ngIf="CVSelected.getCV()">
            <button type="button" [routerLink]="['/dashboard/cv']" class="waves-effect waves-light btn">Passer à l'édition</button>
        </div>

AutocompleteInit:

autocompleteInit: any = {
    data:  {Some_data_here},
    onAutocomplete: (str: string) => {
        this.dataService.GetFromString(str).subscribe(value => {
            console.log(value);
            this.CVSelected.setCV(value[0]); // This makes the button appears on my template with a get
        });
        this.changement.detectChanges(); // Tried this and other functions that does the same but doesn't work
    },
};

任何人都遇到了这个问题? 如果是的话,一些解决方案?

先感谢您

Answer 1:

在这种情况下,最可能的原因是角区之外执行代码。 为了解决这个问题,我会建议你像角区域中运行的代码:

constructor(private zone: NgZone) { }

autocompleteInit: any = {
  data:  {},
  onAutocomplete: (str: string) => {
     zone.run(() => {
        this.dataService.GetFromString(str).subscribe(value => {
          console.log(value);
          this.CVSelected.setCV(value[0]); // This makes the button appears on my template with a get
        });
     });
  },


文章来源: Angular2 : View not updating