我正在尝试在我的MOBILE POC(Cordova2 / Angular2)中创建Cart功能。 我已经为组件之间的共享数据创建了Service。我通过组件A添加项目并尝试从组件B中读取。但是我没有在组件B中看到这些项目。我应该在服务中添加什么?
import { Injectable } from '@angular/core';
@Injectable()
export class CartService {
private vijayCart: Array<any> = [];
GetCart() {
return this.vijayCart;
}
SetCart(item) {
this.vijayCart.push(item);
}
}
组件A:
addItemToCart(item) {
this.cartService.SetCart(item);
//this.cartService.vijayCart.push(item);
this.cartLenth = this.cartService.GetCart().length;
}
组件B:
ngOnInit(): void {
this.cartSer = this.cartService.GetCart();
}
答案 0 :(得分:1)
一切都是正确的,你缺少的一件事就是为这两个组件提供服务。 您需要在模块级别共享服务,以表明我的服务在这两个组件之间共享。
providers: [AppService],
模块的整个代码
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
AppRoutingModule
],
providers: [AppService],
bootstrap: [AppComponent]
})
export class AppModule { }
如果您想了解更多细节并希望了解如何在两个模块之间共享数据,您可以看到share data between tow module
行为主题 行为主题是在组件之间共享数据的更好方式,它可以在一个服务中发生数据更改时处理未来的数据共享,并通知其他服务。
详细了解您可以看到此sharing data between components