Javascript 当组件准备就绪时,如何在Polymer中动态注册新属性?
问题 一旦web组件准备就绪,如何在其中动态注册新属性 问题 假设我们有一个简单的web组件,如下所示[1]:Javascript 当组件准备就绪时,如何在Polymer中动态注册新属性?,javascript,polymer,web-component,Javascript,Polymer,Web Component,问题 一旦web组件准备就绪,如何在其中动态注册新属性 问题 假设我们有一个简单的web组件,如下所示[1]: <polymer-element name="wc-bridge"> <script> Polymer ('wc-bridge', { publish: { x: 0 }, observe: { x: 'xfn' }, created: function ()
<polymer-element name="wc-bridge">
<script>
Polymer ('wc-bridge', {
publish: {
x: 0
},
observe: {
x: 'xfn'
},
created: function () {
this.publish.y=0;
this.observe.y='yfn';
},
xfn: function (ov, nv) {
console.log ({key:'x', old: ov, new: nv});
},
yfn: function (ov, nv) {
console.log ({key:'y', old: ov, new: nv});
},
});
</script>
</polymer-element>
未回答的相关问题
不确定是否可以,因为属性只加载一次 如果我需要这样做,我只使用一个包含映射的属性{key:value}作为值来管理,而不是像字符串这样的基元。然后观察属性并应用逻辑以了解如何处理新值
希望这是有用的非常感谢@aqquadro,但您可以在上下文中检查您的解决方案对我无效。有帮助吗?非常感谢,Eric。这似乎是我一直在寻找的。我尝试过修改代码,但我发现了与生命周期相关的双重问题。此处的代码[]对此进行了解释。你能看一下吗?Polymer的设计是为了仔细优化原型的绑定/观察,这样你就可以制造出许多高效运行的元件。尝试使用同一个系统进行动态的、每实例的行为将给您带来困难。您说过“当通用属性更改时触发事件”:这很简单,您可以自己实现
attributeChanged
并使用fire
触发匹配事件。非常感谢。据我所知,你在评论中的建议正是我在这里试图做的[jsbin.com/juvomalavi/1/edit],但我没有得到任何行为。请你看一下我的密码,告诉我哪里错了?
<wc-bridge x="{{v}}" y="{{v}}"> <!-- x & y are unknown at design time -->
<wc-bridge-event on="x" fire="e1"/> <!-- x & e1 are known by digesting this -->
<wc-bridge-event on="y" fire="e2"/> <!-- y & e2 are known by digesting this -->
</wc-bridge>