如何使用 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)
否则不会触发观察者。
我想使用观察者通过 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)
否则不会触发观察者。