ns.Model: set() ничего не сообщает об изменённых вложенных полях #179

Open
chestozo opened this Issue Nov 15, 2013 · 2 comments

Comments

Projects
None yet
2 participants
Member

chestozo commented Nov 15, 2013

Пример:

var data = {
  nested: {
    value: true
  }
};

var m = ns.Model.get('model', {}).setData(data);
m.on('ns-model-changed.nested.value', callback);
m.set('.nested', 'Hello, Dolly');

// callback вызван не будет

// Триггерятся события:
// ns-model-changed.nested
// ns-model-changed

// Ожидаю события:
// ns-model-changed.nested.value
// ns-model-changed.nested
// ns-model-changed

Тут, мне кажется, можно решить так:

  1. простая версия: триггерить только ns-model-changed
  2. сложная: traverse всего изменяемого куска объекта и trigger событий для каждой его части.

Что думаете?

Contributor

edoroshenko commented Nov 15, 2013

Во втором решении не слишком большой оверхед для сложных моделей?

Есть ещё однин вариант решения: при .set проверять изменения только тех полей, на которые кто-то подписался.

Member

chestozo commented Nov 15, 2013

Есть ещё однин вариант решения: при .set проверять изменения только тех полей, на которые кто-то подписался.

Ага кстати )

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment