我正在尝试使用 Angular 构建管理面板。请注意,这是我第一次使用Angular和第一次使用OOP构造。
我有一个页面,其中列出了所有产品类型,方法是选择或者单击任何产品类型。我将它们重定向到另一个包含相应产品品牌的页面。
因此,当我搜索互联网以查看跨多个组件共享数据的最佳方式时,我找到了 BehaviourSubject ,并且我成功地设法将用户从{{1}重定向页面到products
页面。现在,我想在选择品牌后将用户从brands
页面路由到新页面。
到目前为止,我设法只使用brands
类型的一个变量来执行 BehaviourSubject ,该变量从产品页面中选择一个产品。现在,我可以选择让我的用户选择多个品牌。
如何将此数据传递到下一页?当我选择品牌时,我仍然可以使用 BehaviouSubject 访问我的string
值。我正在考虑创建一个类并更新该类的最后一个值,遗憾的是我不能这样做。
CODE
product
这段代码没有给我带来任何关于tslint的错误,但是在浏览器上它会抛出一个错误:
@Injectable()
export class UserActionService {
private product;
private currentProduct;
constructor() {
this.product = new BehaviorSubject<UserActions>(null);
this.currentProduct = this.product.asObservable();
}
changeProduct(product: UserActions) {
this.product.lastProduct.next(product);
}
}
export class UserActions {
private lastProduct: string;
private lastBrands: Array<string>;
}
我不知道我是否做得对,任何帮助都会非常感激。
答案 0 :(得分:0)
我认为在重定向到新网页后,您需要的是GetCurrentValue
。参考Simple way to get the current value of a BehaviorSubject with rxjs5,您可以这样做:
getProduct() : UserActions {
return this.product.value;
}
changeProduct(product: UserActions) {
this.product.next(product);
}