如何在mithril.js中检测模型参数变化事件

How to detect model parameter change event in mithril.js?

本文关键字:模型 参数 变化 事件 检测 mithril js      更新时间:2023-09-26

我最近开始学习mithril.js,我想知道我如何才能使非常基本的模型->视图单向数据绑定应用程序。

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

代码声明了一个模型,它作为getter/setter完美地工作。但是我如何为像Backbone的listenTo('model',"change",callbackFunc)这样的模型事件设置事件侦听器呢?

我看到的所有示例代码都是为实际用户操作设置事件,如click, keyuponchange,但从不直接听取实际模型值的状态。

我错过了什么,或者我理解如何使用mithril.js错误?

Mithril的一个关键思想是,变化通常发生在事件之后:

  • m()视图模板中定义的onclickkeyup等用户操作
  • 使用m.request进行ajax请求

Mithril自动重新绘制,减轻了大多数听众的需要。

如果你通过其他方法更新你的模型,你需要手动重画,使用m.redrawm.startComputation / m.endComputation。感谢Mithril的DOM diff算法,重绘非常便宜,所以不要害怕使用它们(当然,要有一些常识!)查看m.r redraw文档获取更多信息。