【发布时间】:2017-07-22 06:18:55
【问题描述】:
即使输入命令没有改变,我如何告诉 Polymer 2.0 函数结果的改变?考虑这个小例子,它修改了基本的 polymer-2-starter-kit 的 my-view1:
<dom-module id="my-view1">
<template>
<style include="shared-styles">
:host {
display: block;
padding: 10px;
}
</style>
<div>[[getText(node)]]</div>
<paper-button on-tap="changeElements">Change elements</paper-button>
</template>
<script>
class MyView1 extends Polymer.Element {
static get is() { return 'my-view1'; }
static get properties() {
return {
node: {
type: Number,
value: 0
},
node2: {
type: Number,
value: 5
}
}
}
changeElements() {
this.node2 += 1;
console.log(this.getText(0));
}
getText(item) {
return this.node2;
}
}
window.customElements.define(MyView1.is, MyView1);
</script>
</dom-module>
当我单击按钮时,node2 和 getText 的结果会发生变化,这会显示在控制台中。但是,所描绘的值始终保持在初始值 5。我猜,由于节点没有改变,所以没有处理改变。是否有可能通知 Polymer 函数结果的变化?类似函数的 notifyPath 或类似的东西?还是我需要设置一些标志或类似的东西?
虽然我知道这个最小的例子很容易通过只输出 node2 而不是使用 getText(node) 来解决,但在我的常规项目中它要复杂得多,因为函数会根据不同的因素计算输出。
【问题讨论】:
标签: javascript polymer polymer-2.x