我有一个在表格中显示的表格组件,以及一个以可以打印的格式显示同一个表格的打印组件。两者都驻留在同一个HTML页面中。
print组件需要表组件中的一些信息。这些信息对于外部控制器来说是无用的,它只需要从一个组件到另一个组件。
显而易见的解决方案是将printInfo
对象输出绑定到表组件,并将其输入绑定到打印组件,如下所示:
<table-component ... on-print-info-changed="vm.onPrintInfoChanged(info)"/>
<print-component print-info="vm.printInfo"/>
我在printInfo
中设置onPrintInfoChanged
。
虽然这有效,但它看起来并不正确。由于两个组件已经相互依赖,我更愿意这样做:
<table-component .../>
<print-component table="<ref to table-component>"/>
这样,控制器不需要知道两个组件之间的依赖关系,除了有一个组件。
问题是 - 如何提供对表组件的引用?我可以在页面上获取表格控制器的元素,但是如何从中获取组件的控制器?
我发现了一些旧的(有时是矛盾的)答案,但在任何人使用组件或ES 6之前,它们都与旧版本的Angular相关。