如何使用Polymer 1.0上的观察者通过onclick函数将日期从一个组件发送到另一个组件? (不使用本地存储)

时间:2017-06-07 08:27:57

标签: javascript function onclick polymer-1.0 observers

我想发送'类别列表'来自&submenu-list.html'到组件' category.html'通过onclick功能'响应'使用观察者。我该怎么办(不使用本地存储)? (通过编辑代码来表示)

/ * submenu-list.html * /

<link rel="import" href="../../bower_components/polymer/polymer.html">
 <dom-module id="submenu-list">
  <template>
    <paper-menu>
      <paper-item><a onclick="response">My Menu Items</a></paper-item>
    </paper-menu>
  </template>
  <script>
    Polymer({
     is:'submenu-list',
     properties: {
        categorylist: {
          type: Array,
          value:[]
        }
     },
     response: function() {

     }
})
  </script>
 </dom-module>

/ * category.html * /

<link rel="import" href="../../bower_components/polymer/polymer.html">
 <dom-module id="category">
  <template>

  </template>
  <script>
    Polymer({
     is:'category',
})
  </script>
 </dom-module>

1 个答案:

答案 0 :(得分:1)

很快,你的答案很快就可以了。至少从您提供的信息。由于这些组件似乎没有以某种方式连接,因此组件之间没有直接的通信方式。可能的解决方案是您将信息写入本地存储,但正如您所说,您不希望这样做。其他解决方案可能是redux或休息服务,但我想这也不是一个选择。最后一个建议是这两个组件都是兄弟姐妹?那你可以使用Polymer默认数据绑定吗?例如:

<submenu-list categorylist="{{categorylist}}"></submenu-list>
<category categorylist="{{categorylist}}"></category>

然后在两个组件中添加:

categorylist: {
      type: Array,
      value:[],
      notify:true,
      observer: '_categorylistChanged'
    }

现在你必须实现_categorylistChanged函数,当更改categorylist时将调用该函数。

 _categorylistChanged: function(newValue, oldValue){
 //do something
 }

不要忘记何时想要更改类别列表来调用

this.set('categorylist', //your new value)

否则不会触发观察者。