2

我正在尝试更新我的一个项目以使用 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 元素来渲染它,但是如果我每次更改时都进行铁输入,那么更改不会传播到我的模型中。

理想情况下,我什至会创建一个元素来编辑每个对象以及其中的子对象。但是,如果我必须指定可能发生的每一个通知,我会感到不知所措,而且我根本不了解这些事情的作用。

4

3 回答 3

1

您可以使用深度路径观察绑定复杂对象。

绑定看起来像data="{{object.*}}"

于 2015-06-05T13:43:46.440 回答
1

看起来您正在寻找如何观察数组的变化,如果是这样,我建议查看Polymer 1.0 'array-style' path accessors 中的答案,替代表达式中的括号表示法

一般来说,您的解决方案应该像 Zikes 所说的那样涉及深度路径观察者,并为各种值提供 notify:true。

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

于 2015-06-05T16:37:23.200 回答
0

事实证明,我遇到的麻烦与 Polymer 无法观察由字符串组成的数组有关。因此,您必须改用对象数组。

于 2015-06-14T16:04:35.257 回答