Angular 2:当我在ngOnInit中更改promise.than中的变量时,视图不会刷新

时间:2016-08-29 09:37:35

标签: angular angular-promise nativescript

我创建了一个使用NativeScript构建的Angular 2应用程序的简短示例,我期望变量foo在开头是“foo”,然后是ngOnInit()第一次更改它是“bar”然后承诺返回,我应该在Label中看到“foobar”,但我看到“bar”。

正如我在日志中看到的那样执行:

JS: afterBar
JS: promise new
JS: promise than

component.ts

foo:String="foo";

ngOnInit() {
    this.foo = "bar";
    console.log("afterBar");

    var promise = new Promise((resolve)=>{
        resolve(42);
        console.log("promise new");
    });

    promise.then(x=> {
        this.foo="foobar";
        console.log("promise than");
    });
}

应用视图:

<Label [text]='foo'></Label>

如何更改承诺中的标签文本并将其“刷新”到应用视图中?

解决:

我通过强制更新来解决问题

import { ChangeDetectorRef } from '@angular/core';
    [...]
constructor(
    [...],
    private ref: ChangeDetectorRef) {       
}

[...]
this.ref.detectChanges();

0 个答案:

没有答案