我试图更新我的项目以使用Polymer 1.0,并且我已经卡在整个双向绑定和通知系统上。 Polymer 0.5为你解决了这个问题,我似乎无法在1.0中做到这一点。
我必须为我的API创建一个对象:
{
"create": [{
"classes": ["Person"],
"HasName": [{
"givenNames": ["Paula"],
"familyNames": ["Vaandrager"]
}]
}, {
"id": "bvhme",
"classes": ["Person", "User"],
"HasName": [{
"givenNames": ["Boris", "Hendrik"],
"familyNames": ["van Hoytema"]
}, {
"givenNames": ["Boris", "Hendrik"],
"familyNames": ["Vaandrager"]
}]
}]
}
我已经弄清楚如何使用dom-repeat元素渲染它,但是如果我在每次更改时都进行了铁输入,则更改不会传播到我的模型中。
理想情况下,我甚至可以创建一个元素来编辑每个对象及其中的子对象。但是,如果我必须指定可能发生的每一个通知,我会感到不知所措的复杂性,除了我不理解这些事情的作用。
答案 0 :(得分:1)
您可以使用deep path observation绑定复杂对象。
绑定看起来像data="{{object.*}}"
答案 1 :(得分:1)
看起来您正在考虑如何观察数组的更改,如果是这样,我建议您查看Polymer 1.0 'array-style' path accessors, alternative to bracket notation in expressions中的答案
一般来说,你的解决方案应该包括深度路径观察者,如Zikes所说并通知:各种值都是真的。
properties: {
fields: {
type: Array,
notify: true
},
},
someFunction: function() {
this.set('fields.' + index, value);
}
如果您需要观察数组的添加和删除,请查看数组拼接观察者https://www.polymer-project.org/1.0/docs/devguide/properties.html#array-observation
答案 2 :(得分:0)
事实证明我遇到的麻烦是聚合物无法观察由字符串组成的数组。所以你必须使用对象数组。