我将 angular2 2.0.0-beta.2 与 ngrx 商店https://github.com/ngrx/store一起使用,并使用 ngrx/store github 页面上的“计数器”示例的修改版本实现了一个简单的应用程序。
在我的应用程序中,我有一个“用户”对象,其中包含两个用于login和logout的按钮。我也有相应的减速器函数login和logout,我可以使用包含 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