在Polymer 1.0中,我希望从子元素到主机的单向数据绑定。如果您在定义属性时定义notify: true
和readOnly: true
,则可以执行此操作。解释here。
另见下面的示例。
子:
...
Polymer({
is: "child-element",
properties:{
myProp:{
type: Number,
notify: true,
readOnly: true,
value: 0
}
}
});
主机:
...
<child-element my-prop="{{hostValue}}"></child-element>
...
由于{{ ... }}
且属性设置为notify: true
,因此主机会尝试双向绑定,但子节点为readOnly: true
。因此,绑定仅适用于子节点到主机。
在我的设置中,我想更改孩子的值。因此主机中的绑定值将相应更改。但由于该属性标记为readOnly: true
,因此孩子无法更改该值。
有没有办法从子到主机绑定一种方式,阻止主机覆盖该值但允许孩子这样做?
更新:我准备了一个Plunk here。转到child-element.html。您看到myProp
的值为'Initial value'
。单击该按钮时没有任何反应,因为它设置为readOnly
。但是,如果您在第19行上注释掉readOnly
,然后点击该按钮,您会看到值更改。因此,readOnly还可以防止在子元素中覆盖from的值。
答案 0 :(得分:2)
请使用_setMyProp(newValue)更改子元素中的只读值。您可以在https://www.polymer-project.org/1.0/docs/devguide/properties.html#read-only
中详细了解相关信息