Polymer 1.x:调用iron-pages之间的函数并在role =“main”时传递数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Polymer 1.x:调用iron-pages之间的函数并在role =“main”时传递数据相关的知识,希望对你有一定的参考价值。

我有项目结构

<my-app></my-app> //in index.html

在my-app.html我有铁页,里面我有3个组件

<iron-pages selected="0" role="main">
  <my-page1></my-page1>
  <my-page2></my-page2>
  <my-page3></my-page3>
</iron-pages>

如何从my-page1.html调用my-page2.html中的参数?

我现在使用的方法是,我将在my-page1.html中为notify:true页面提供向上数据流的属性,并在第二个组件中为该属性添加一个观察者,所以当我分配观察者时呼叫!

<iron-pages selected="0">
  <my-page1 data-prop1={{dataProp1}}></my-page1>
  <my-page2 data-prop2=[[dataProp1]]></my-page2>
  <my-page3></my-page3>
</iron-pages>

这里为data-prop2,我将添加一个观察者,所以当我在my-page1.html观察者中为data-prop1分配数据时,在my-page2.html中调用

在我看来,这不是正确的方法!所以this.fire只能用于触发从子节点到父节点的功能,所以如果我需要在组件或子节点兄弟之间传达特定的功能,我该怎么办?

答案

建议通过数据模型进行通信。 (稍后我会带你参考。)

还建议观看Rob谈论单向数据流动,https://www.youtube.com/watch?v=iJ9hS54BRag#t=11m7s

另一答案

我正在做的是,使用querySelector获取页面的实例并调用该方法。

如下:

var myPage2 = null;
myPage2 = document.querySeletor('my-page2');
// Now call your function from here
myPage2.yourFunction(param1, param2);

`

你的my-page2将具有yourFunction功能。

以上是关于Polymer 1.x:调用iron-pages之间的函数并在role =“main”时传递数据的主要内容,如果未能解决你的问题,请参考以下文章

在Polymer中调用自定义元素/铁页面上的公共方法

怎么评价Angular推出的Material,相比Polymer如何

怎么评价Angular推出的Material,相比Polymer如何

Polymer 中的模板:如何将组件加载到特定布局中

Google Polymer:从元素外部监听属性变化

转到主页不会在Polymer中加载页面