如何将多个值传递给 angular 5 observable?
How to pass multiple values to angular 5 observable?
我每天都在学习 angular,但我遇到了一个问题。我在一个组件中有 3 个值,我需要将它们传递给另一个组件。我对可观察和订阅有基本的了解,但我是用 1 个参数完成的。现在我要广播3个值
这是我的购物车代码。
additem(itemText){
this.cart.push(itemText);
this.itemscount = this.cart.length;
this._data.changeCart(this.cart);
}
当我点击一个产品时,这个函数调用并将购物车数组发送到 observable 并在那里广播购物车数组
export class DataService {
private cart = new BehaviorSubject<any>([]);
cast = this.cart.asObservable();
constructor() { }
changeCart(item_param) {
this.cart.next(item_param);
//console.log(this.cart);
}
}
现在我需要将 3 个值传递给 observable,但我不知道该怎么做,因为我读过我们只能将一个值传递给 observable。
我有一个想法,将所有值包装在一个数组中并传递该数组,但我对此进行了搜索,但找不到如何在 angular 中的单个数组中存储多个值。
如有帮助,将不胜感激appreciated.Thanks
以下是如何使其成为对象并将其用于多个值
export class DataService {
private cartObject = new BehaviorSubject<Object>({});
cartObjectInfo = this.cartObject.asObservable();
constructor() { }
changeCart(cartObject) {
this.cartObject.next(cartObject);
}
}
首先是获取BehaviourSubject中的值
this.data.cartObjectInfo.subscribe(cartObject => {
if(cartObject) this.cartObject = cartObject;
});
this.data.changeCart({//make the full object here});
你可以像这样制作一个对象:
a = 5;
b = 'sss';
c = new Date();
objToPass = { a: a, b: b, c: c };
稍后,您可以访问 objToPass.a、objToPass.b 等对象属性
这是构建 JS 对象的标准方式。
我每天都在学习 angular,但我遇到了一个问题。我在一个组件中有 3 个值,我需要将它们传递给另一个组件。我对可观察和订阅有基本的了解,但我是用 1 个参数完成的。现在我要广播3个值
这是我的购物车代码。
additem(itemText){
this.cart.push(itemText);
this.itemscount = this.cart.length;
this._data.changeCart(this.cart);
}
当我点击一个产品时,这个函数调用并将购物车数组发送到 observable 并在那里广播购物车数组
export class DataService {
private cart = new BehaviorSubject<any>([]);
cast = this.cart.asObservable();
constructor() { }
changeCart(item_param) {
this.cart.next(item_param);
//console.log(this.cart);
}
}
现在我需要将 3 个值传递给 observable,但我不知道该怎么做,因为我读过我们只能将一个值传递给 observable。 我有一个想法,将所有值包装在一个数组中并传递该数组,但我对此进行了搜索,但找不到如何在 angular 中的单个数组中存储多个值。
如有帮助,将不胜感激appreciated.Thanks
以下是如何使其成为对象并将其用于多个值
export class DataService {
private cartObject = new BehaviorSubject<Object>({});
cartObjectInfo = this.cartObject.asObservable();
constructor() { }
changeCart(cartObject) {
this.cartObject.next(cartObject);
}
}
首先是获取BehaviourSubject中的值
this.data.cartObjectInfo.subscribe(cartObject => {
if(cartObject) this.cartObject = cartObject;
});
this.data.changeCart({//make the full object here});
你可以像这样制作一个对象:
a = 5;
b = 'sss';
c = new Date();
objToPass = { a: a, b: b, c: c };
稍后,您可以访问 objToPass.a、objToPass.b 等对象属性
这是构建 JS 对象的标准方式。