2015-06-05 3 views
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"] 
      }] 
     }] 
    } 

Я понял, как сделать это, используя дом-повторяющиеся элементы, но если я железный вход всякий раз, когда я меняю что изменения не распространяются на мою модель.

В идеале я бы даже создал элемент для редактирования каждого объекта и для под-объектов внутри него. Но я чувствую себя ошеломленным сложностью этого, если я должен указать каждое уведомление, которое может произойти, кроме того, что я не понимаю, что это вообще делает.

ответ

1

Вы можете связать сложный объект, используя deep path observation.

Связывание будет выглядеть data="{{object.*}}"

1

Похоже, что вы ищете, как наблюдать изменения в массивах, если да, то я советую смотреть на ответы в Polymer 1.0 'array-style' path accessors, alternative to bracket notation in expressions

В общем, ваше решение должно включать в себя глубокий наблюдатели пути, как сказал Зикс, и уведомили: истинно для разных ценностей.

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

0

Оказывается проблема у меня был должен был сделать с полимером неспособность наблюдать массивы, которые состоят из строк. Таким образом, вам придется использовать массивы объектов.

Смежные вопросы