两个Angular 1组件之间的通信

时间:2017-01-15 19:59:20

标签: angularjs ecmascript-6 components

我有一个在表格中显示的表格组件,以及一个以可以打印的格式显示同一个表格的打印组件。两者都驻留在同一个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相关。

0 个答案:

没有答案