Показать сообщение отдельно
  #1 (permalink)  
Старый 17.01.2017, 15:19
Аспирант
Отправить личное сообщение для AirGraph Посмотреть профиль Найти все сообщения от AirGraph
 
Регистрация: 20.04.2015
Сообщений: 39

Остро-теоретически о viewModel
Всем привет!

Объясните, пожалуйста, как viewModel узнает об изменении своих данных?

Вот у меня в приложении есть viewModel:
Ext.define('My.view.main.MainModel', {

	extend: 'Ext.app.ViewModel',
	alias: 'viewmodel.main',

	data: { 'json': null },

	formulas: {

		viewJson: {

			deep: true,
			get: function(get) {

				this.set('json', someObject.getJson());
				return get('json');

			}
		}
	}
});

Если я во viewController пишу
this.getViewModel().set('json', someObject.getJson());

меняя тем самым весь json, формула viewJson не работает в том контейнере, где я на нее ссылаюсь bind_ом.

А если я тупо во viewController пишу
this.getViewModel().notify();

то будучи изнасилованной нотифаем, ViewModel отрабатывает формулу viewJson корректно.

Именно отсюда у меня вопрос - а что надо сделать с данными viewModel, чтобы она поняла, что они изменились и пора отрабатывать связанные формулы?

Последний раз редактировалось AirGraph, 19.01.2017 в 21:17.
Ответить с цитированием