Я создал веб-компонент под названием TestElement
с Polymer, как показано ниже. Он просто имеет значение объекта и функцию, которая добавляет значения к этому компоненту.
<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>
Я создал два экземпляра этого в родительском элементе следующим образом:
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'}
. Почему?
Если вы хотите иметь рабочий пример, пожалуйста, обратитесь к этому плану:
http://plnkr.co/edit/7jSwTTBbBxD4qCbUoCGI?p=preview