每当服务中的值更新时,我都试图从服务的值获取到Tabs组件中,如果可能,请将cart.service.ts中的cartNumber绑定到tabs.ts中的cartNumber。我的用例是这样的:
通过点击“添加到购物车”按钮,中间的“购物车”标签应将徽章编号更新为购物车编号中的相应商品编号
cart.service.ts
@Injectable()
export class CartService {
public cartNumber: number;
constructor() {}
getCartItems() {
// returns list of items in shopping cart
}
addToCart(id, quantity){
// updates the shopping cart with new items
}
tabs.ts
import { CartService } from '../cart/cart.service';
@Component({
templateUrl: 'tabs.html'
})
export class TabsPage {
// this tells the tabs component which Pages
// should be each tab's root Page
tab1Root: any = HomePage;
tab2Root: any = CartPage;
tab3Root: any = ProfilePage;
public cartNumber: number;
constructor() {
}
}
因此,将cart.service cartNumber值“绑定”到我的选项卡组件的cartNumber上的最佳方法是什么,以便每当cart.service cartNumber发生更改时该值都会更新?
我已经尝试了ngOnChanges,但似乎无法正常工作。在这种情况下,EventEmitters似乎不起作用。或者,我对这些方法的任何理解都不对。
感谢Suraj Rao对于使用Ionic 2 Events的建议
如上所述,我找不到在不同组件之间进行通信的方法,这确实做到了。这是一个非常干净而优雅的解决方案,而不必使用$ watch或通过像在角度1中那样通过$ scope运行$ scope。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句