从Angular ngRedux-Store获取数据

时间:2018-01-10 13:34:55

标签: angularjs angular redux

我想从ngRedux-store加载数据并对更改做出反应。我想在使用CanActivate接口的防护中使用这个。

通常我会检索这样的数据

@select(['auth', 'IsAuth']) isAuth : boolean;

但我不能在我的警卫班中使用它。我想我必须做那样的事情。

console.warn('AuthGuard#canActivate called');
var d = this.ngRedux.select(['auth', 'IsAuth']);
console.error(d);

我只得到一个annonymusSubject。但我想得到我的布尔值。

2 个答案:

答案 0 :(得分:0)

您可以使用take运算符从您的选择中获取第一个值并完成可观察的

canActivate(): Observable<boolean> {
    // returns true/false from the store so canActivate 
    // can determine if the user can navigate to the route
    return this.ngRedux.select(['auth', 'IsAuth'])
        .take(1);
}

答案 1 :(得分:0)

这项工作

this.ngRedux.select(['auth', 'Header']).subscribe(m => {
        this.Header = m;
    });