有时我们可能需要将自定义元素动态添加到上下文中。然后:
插入的聚合物可以接收一些与上下文中的另一个属性绑定的属性,因此它可以相应地改变。
在聚合物 0.5 中,我们可以使用 PathObserver 将属性绑定到最近添加的组件的上下文属性。但是,我在聚合物 1.0 中没有找到解决方法或等效方法。
我为 0.5 创建了一个示例,为 1.0 创建了一个示例。请参阅下面的聚合物代码,它使注射。为了清楚起见,您还可以查看完整的 plunker 示例。
Ej 0.5:
<polymer-element name="main-context">
<template>
<one-element foo="{{foo}}"></one-element>
<div id="dynamic">
</div>
</template>
<script>
Polymer({
domReady: function() {
// injecting component into polymer and binding foo via PathObserver
var el = document.createElement("another-element");
el.bind("foo", new PathObserver(this,"foo"));
this.$.dynamic.appendChild(el);
}
});
</script>
</polymer-element>
请查看完整的 plunkr 示例:http ://plnkr.co/edit/2Aj3LcGP1t42xo1eq5V6?p=preview
Ej 1.0:
<dom-module id="main-context">
<template>
<one-element foo="{{foo}}"></one-element>
<div id="dynamic">
</div>
</template>
</dom-module>
<script>
Polymer({
is: "main-context",
ready: function() {
// injecting component into polymer and binding foo via PathObserver
var el = document.createElement("another-element");
// FIXME, there's no a path observer: el.bind("foo", new PathObserver(this,"foo"));
this.$.dynamic.appendChild(el);
}
});
</script>
请查看完整的 plunkr 示例:http ://plnkr.co/edit/K463dqEqduNH10AqSzhp?p=preview
您知道聚合物 1.0 的一些解决方法或等效方法吗?