3

我将 angular2 2.0.0-beta.2 与 ngrx 商店https://github.com/ngrx/store一起使用,并使用 ngrx/store github 页面上的“计数器”示例的修改版本实现了一个简单的应用程序。

在我的应用程序中,我有一个“用户”对象,其中包含两个用于loginlogout的按钮。我也有相应的减速器函数loginlogout,我可以使用包含 name 属性的对象或空对象返回状态...

export const user: Reducer<any> = (state: any = {}, action: Action) => {

    switch (action.type) {
        case LOGIN:
            return {name: 'jdoe'};

        case LOGOUT:
            return {};

        default:
            return state;
    }
};

这不会更新:

<h2>User Name = {{ user.name | async }}</h2>

...当我单击登录按钮时它仍然是空白的,但是当通过“json”管道传输时,我看到对象确实已经改变了......

这确实更新

{{ user | async | json }}

...输出{ "name": "jdoe" }但显然这对我没有好处。简单地使用 {{ user.name | async }} 不起作用并保持空白。

模板:

<div>
    <h2>User Name = {{ user.name | async }}</h2>
    <button (click)="login()">login</button><button (click)="logout()">logout</button>
</div>
<hr>
<div>
      {{ user | async | json }}
</div>

这是 plunker: http ://plnkr.co/edit/cPubI9upph344qrOqtj8?p=preview

4

2 回答 2

11

语法看起来像(user | async).name- 见http://plnkr.co/edit/OVHh9lHvTU4sKrCbrLqq?p=preview

于 2016-02-11T05:06:43.133 回答
0

你也可以做

    <div *ngIf="user | async as userdata">
     {{userdata.name}}
     {{userdata.birthday}}
     ...
    </div>
于 2017-07-07T09:10:11.900 回答