gpt4 book ai didi

polymer - 如何在 Polymer 中反射(reflect)从 child 到 parent 的变化

转载 作者:行者123 更新时间:2023-12-01 11:24:59 27 4
gpt4 key购买 nike

当前代码如下。我在主文件中有元素值。该值被传递给子元素 app-element,并从那里传递给 app-element-add。

app-element-add 中的值发生变化。但是我无法获取主要元素中反射(reflect)的值。

观察者永远不会被调用。

主要.html

<app-element element-value = {{ elementValue }}></app-element>

Polymer({

is: 'app-main-element',

properties: {
elementValue: {
type:Array,
notify:true,
observer:'listUpdated'
}
});

应用元素.html

<app-element-add element-value = {{ elementValue }}></app-element-add>
Polymer({

is: 'app-element',

properties: {
elementValue: {
type:Array,
notify:true,
observer:'listUpdated'
}
});

应用元素添加.html

Polymer({

is: 'app-element-add',

properties: {
elementValue: {
type:Array,
notify:true,
reflectToAttribute:true
}
});

有关如何在 app-main-element 中反射(reflect) app-element-add 更改的任何提示。谢谢。

最佳答案

你不需要在这里使用reflectToAttribute。此处唯一需要的选项是 notify。但是,您当前的代码有效:

HTMLImports.whenReady(_ => {
"use strict";

Polymer({
is: 'app-main-element',
properties : {
elementValue: {
type: Array,
notify: true,
observer: 'listUpdated',
value: _ => [100,200,300]
}
},
listUpdated: function() {
console.log('[app-main-element] list updated');
},
ready: function() {
console.log('[app-main-element] ready');
}
});

Polymer({
is: 'app-element',
properties : {
elementValue: {
type: Array,
notify: true,
observer: 'listUpdated'
}
},
listUpdated: function() {
console.log('[app-element] list updated');
},
ready: function() {
console.log('[app-element] ready');
}
});

Polymer({
is: 'app-element-add',
properties : {
elementValue: {
type: Array,
notify: true
}
},
ready: function() {
console.log('[app-element-add] ready (will set elementValue in 1000ms)');

this.async(_ => {
console.log('[app-element-add] updating elementValue');
this.elementValue = [1,2,3];
}, 1000);
}
});
});
<head>
<base href="https://polygit.org/polymer+1.11.0/components/">
<script src="webcomponentsjs/webcomponents-lite.js"></script>
<link rel="import" href="polymer/polymer.html">
</head>
<body>
<app-main-element></app-main-element>

<dom-module id="app-main-element">
<template>
<app-element element-value={{elementValue}}></app-element>
<div>app-main-element.elementValue = [[elementValue]]</div>
</template>
</dom-module>

<dom-module id="app-element">
<template>
<app-element-add element-value={{elementValue}}></app-element-add>
<div>app-element.elementValue = [[elementValue]]</div>
</template>
</dom-module>

<dom-module id="app-element-add">
<template>
<div>app-element-add.elementValue = [[elementValue]]</div>
</template>
</dom-module>
</body>

codepen

关于polymer - 如何在 Polymer 中反射(reflect)从 child 到 parent 的变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38105465/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com