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

How to send date from one component to another component by onclick function using observers on Polymer 1.0? (without using local-storage)

我想使用观察者通过 onclick 函数 'response' 将 'categorylist' 从 'submenu-list.html' 发送到组件 'category.html'。我该怎么做(不使用本地存储)? (请通过编辑代码显示)

/* 子菜单-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>

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

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

然后在两个组件中添加:

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

现在您必须实现 _categorylistChanged 函数,该函数将在类别列表更改时调用。

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

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

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

否则不会触发观察者。