子组件把报价传到父组件,然后父组件把报价传给另一个子组件(报价组件把报价传给父组件,然后父组件传给订单组件)
设计一个组件时,不依赖外部存在的组件,要实现这样的组件,要使用中间人模式。父组件是中间人,中间人负责从组件接收数据,并将其传递到另一个组件,当另个组件不是父子组件关系时,需要两个共同的父组件,这个父组件就是中间人模式,中间人模式同时使用了输入属性和输出属性。
案例:假设交易员,价格达到一个值,购买,报价组件添加一个购买按钮,报价组件并不知道如何下单买股票,报价组件通知父组件,交易员在某个价位购买股票,中间人知道哪个组件能完成下单,将股票代码和价格传给组件。
1.报价组件html
2.报价组件(把价格发出去,不管谁接收)
3. 父组件的控制器(父组件接收)
4.父组件的html(传给下单组件)
5.订单组件控制器(接收priceQuote)
6. 订单组件html
效果如下
如果两个组件没有共同父组件,应该注入一个服务作为中间人,无论何时,组件被创建,组件可订阅服务发生事件流。
网友评论