В Polymer 1.0 я хотел бы иметь одностороннюю привязку данных от дочернего элемента к хосту. Вы можете сделать это, если определите notify: true
и readOnly: true
при определении свойства. Объяснение здесь.
Также см. мой образец ниже.
Ребенок:
...
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 здесь. Перейдите к дочернему элементу.html. Вы видите, что значение myProp
равно 'Initial value'
. При нажатии на кнопку ничего не происходит, потому что она установлена на readOnly
. Но если вы закомментируете это readOnly
в строке 19 и затем нажмете кнопку, вы увидите изменение значения. Таким образом, readOnly также предотвращает перезапись значения from в дочернем элементе.