2015-06-08 5 views
2

Недавно я начал изучать mithril.js, и мне интересно, как я могу сделать очень базовую модель -> Просмотреть одностороннее привязку данных.Как определить событие изменения параметра модели в файле mithril.js?

TestModel = function(data){ 
    this.name = m.prop(data.name) 
} 
testModel = new TestModel({name: "John"}) 

код выше объявляет модель и отлично работает как геттер/сеттер. но как я могу установить прослушиватель событий для события модели, например Backbone's listenTo('model',"change",callbackFunc)?

все образцы кодов, которые я видел, устанавливают события для действительных действий пользователя, например click, keyup или onchange. Но никогда не прослушивать фактическое состояние модели напрямую.

Я пропустил что-то или я понимаю, как правильно использовать mithril.js?

благодарит заранее.

ответ

3

Одна из ключевых идей с Митрил что изменения обычно происходят после того, как событие:

  • Действие пользователя как onclick или keyup определен в шаблоне m() вида
  • Ajax запрос сделанный с m.request

Mithril автоматически перерисовывается после этого, облегчая необходимость большинства слушателей.

Если вы обновляете свои модели с помощью какого-либо другого метода, и вам нужно перерисовать вручную, используйте m.redraw или m.startComputation/m.endComputation. Благодаря алгоритму DOM diff от Mithril, перерисовки очень дешевы, поэтому не бойтесь их использовать (с некоторым здравым смыслом, конечно!) Ознакомьтесь с документацией m.redraw для получения дополнительной информации.