【发布时间】:2020-03-02 06:46:18
【问题描述】:
我使用 Polymer 创建了一个名为 TestElement 的 Web 组件,如下所示。它只是有一个对象值和一个向这个组件添加值的函数。
<dom-module id="test-element">
<template>Test Element</template>
<script>
class TestElement extends Polymer.Element {
static get is() { return "test-element"; }
static get properties() {
return {
_myVar: {
type: Object,
value: {},
},
};
}
addNew(key, val) {
this._myVar[key] = val;
}
}
customElements.define(TestElement.is, TestElement);
</script>
</dom-module>
我在父元素中创建了两个 this 实例,如下所示:
class ParentElement extends Polymer.Element {
static get is() { return "parent-element"; }
ready() {
super.ready();
this.$.myElement.addNew('key1', 'val-1');
this.$.myElement2.addNew('key2', 'val2');
console.log(this.$.myElement._myVar); // Expected to have {'key1': 'val-1'} but got {'key1': 'val-1', 'key2': 'val2'}. Why?
}
}
在上面的控制台日志中,我希望有{'key1': 'val-1'},但得到了{'key1': 'val-1', 'key2': 'val2'}。为什么?
如果你想有一个工作示例,请参考这个 plunkr:
【问题讨论】:
标签: polymer web-component polymer-2.x