Polymer 1.0子对主机单向数据绑定 - readOnly属性

时间:2015-09-23 15:53:58

标签: data-binding polymer-1.0

在Polymer 1.0中,我希望从子元素到主机的单向数据绑定。如果您在定义属性时定义notify: truereadOnly: 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的值。

1 个答案:

答案 0 :(得分:2)

请使用_setMyProp(newValue)更改子元素中的只读值。您可以在https://www.polymer-project.org/1.0/docs/devguide/properties.html#read-only

中详细了解相关信息

更新了plunk http://embed.plnkr.co/ggYJQ4z65Wj4uuBe4kUg/preview