比方说,我们有一个元素,只有一个简单的双向绑定到子属性:
<x-element data="{{model.partOfData1}}"></x-element>
是否可以动态更改零件partOfData1
?我喜欢做的是这样的事情:
<x-element data="{{model[whichPartOfData]}}"></x-element>
虽然whichPartOfData
是指向model
中数组的指针。我有这么多用例,但很难找到解决方案。存档的最佳方式是什么?
答案 0 :(得分:0)
您可以创建一个计算绑定,它将模型和属性键作为单独的参数:
<x-element data="[[getData(model, propertyName)]]"
on-data-changed="updateModel"></x-element>
Polymer({
is: 'x-element',
getData: function(model, key) {
return model[key];
},
updateModel: function(ev) {
this.model[this.propertyName] = ev.detail.value;
}
});
如果是常见情况,您可以将getData
功能提取到behaviour。
要实现双向绑定,您必须手动侦听data
属性的更改。毕竟数据绑定主要是事件和监听器。我意识到,在这一点上解决方案有点麻烦。