如何检测 mithril.js 中的模型参数更改事件?

2023-12-02

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

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

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

我看到的所有示例代码都为实际用户操作设置事件,例如click,keyup or onchange.但永远不要直接监听实际模型值的状态。

我是否遗漏了某些内容,或者我是否理解了如何错误地使用 mithril.js?

提前致谢。


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

  • 用户操作如下onclick or keyup定义在一个m()查看模板
  • 发出的 ajax 请求m.request

秘银会在这些之后自动重新绘制,从而减轻大多数听众的需要。

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何检测 mithril.js 中的模型参数更改事件? 的相关文章

  • 如何获取对象的所有属性?

    如何在 JavaScript 中使用反射获取对象的所有属性 循环遍历对象并获取属于该对象且不属于该对象的每个键 一个函数 var properties for var key in obj if obj hasOwnProperty key
  • 滚动时输入自动完成位置错误(chrome)

    我在输入文本的默认自动完成功能方面遇到了一些麻烦 滚动时它不会相应移动 我希望自动完成文本保留在输入的正下方 有办法做到这一点吗 我在 Chrome 浏览器版本 57 0 2987 133 中发生这种情况 fiddle https jsfi
  • pubnub 和 head.js

    有没有人成功整合过pubnub http www pubnub com 和 head js 正确吗 Pubnub http www pubnub com 希望我将他们的脚本放在页面底部并带有 div 就在它前面的标签 这可以确保在最后调用
  • Javascript DOM setAttribute 在函数调用中不起作用

    我有一个带有输入元素的 HTML 文件 我希望向其中添加一个名为 valid fieldset011 的新属性 该属性用作 AngularJS 验证器的链接 输入元素具有属性 id fieldset011 如果我使用以下脚本 包含在脚本标签
  • 定义 js-xlsx 单元格范围

    我正在尝试使用 js xlsx 读取 Excel 值 我可以使用以下代码从工作簿工作表中获取单元格值 if typeof require undefined XLSX require xlsx var workbook XLSX readF
  • ajaxStop() 不触发

    这是不起作用的代码 document ajaxStop function this unbind ajaxStop prevent running again when other calls finish Display everythi
  • 仅单击 div 内部

    我正在为一个小网站制作教程 我只想让教程气泡可点击 因此 当我们尝试单击气泡之外的某些内容时 什么也不会发生 换句话说 我希望我的 html 不可点击 而 tutorial bubble 可点击 尝试这个 jQuery function h
  • 创建一个简单的 10 秒倒计时

    我想要一行这样写的 Your download will begin in 10 9 8 etc Beginning on page load seconds 我已经设置了 10 秒下载文本 并且我还查看了其他 stackoverflow
  • 打开 md-calendar 时滚动到当前日期

    目前正在构建一个使用 Angular Material 的应用程序 我们需要一个 md calendar 组件 我们想要自定义按钮样式和内容 因此不使用普通的 md datepicker 问题是 当 md calender 打开时 滚动位置
  • window.onbeforeunload 在 Android Chrome 上不会触发 [alt.解决方案?]

    我开发了一个简单的聊天应用程序 我正在使用 window onbeforeunload当有人关闭选项卡 浏览器时 基本上是当用户离开房间时 通知其他用户 这是我的代码 scope onExit function scope chatstat
  • Web 组件 - 服务/非 html 组件

    所以我来自 Angular 想看看如何创建vanilla Web components 现在 从 Angular 开始 我们倾向于将事物分开 组件 充当 HTML CSS 和一些 javascript 然后是 服务 主要负责收集数据和执行不
  • 启用/禁用由用户输入确定的复选框

    我有一个简单的表单 用户可以在其中输入他的联系号码 如果联系号码以 07 开头 则该复选框已启用 其他我需要禁用它的复选框 我已经编写了一些代码 但我面临的问题是 当用户键入 01 时 它会被禁用 但如果他们继续在 01 之后添加任何其他数
  • 搜索深度嵌套数组以更新对象

    我有一个深层嵌套的数据结构 我有兴趣匹配数组 和数组数组 中的某个值 然后将一些数据推送到随附的数组中 例如以下是我的数组colors并伴随着的是更多颜色数组可能存在也可能不存在 var myData color green moreCol
  • 为什么 Web Worker 性能在 30 秒后急剧下降?

    我正在尝试提高在网络工作人员中执行时脚本的性能 它旨在解析浏览器中的大型文本文件而不会崩溃 一切都运行得很好 但我注意到使用网络工作者时大文件的性能存在严重差异 于是我做了一个简单的实验 我在同一输入上运行脚本两次 第一次运行在页面的主线程
  • Ember Data 中出现“超出最大调用堆栈大小”错误的原因可能是什么?

    Ember 发布新版本 3 6 0 后 我开始在控制台中收到错误 rsvp js 24 未捕获 RangeError 超出最大调用堆栈大小 在 WeakMap get 在 getCacheFor metal js 25 在 Computed
  • RoR - Rails 中的大文件上传

    我有一个 Rails Web 应用程序 允许用户上传视频 视频存储在 NFS 安装的目录中 当前的设置适用于较小的文件 但我也需要支持大文件上传 最多 4GB 当我尝试上传 4GB 文件时 它最终会发生 但从用户体验的角度来看很糟糕 上传开
  • Node.js - 重载函数

    有没有一种方法可以重载node js中的函数 类似于 noSuchMethod https developer mozilla org en JavaScript Reference Global Objects Object noSuch
  • 强制输入数字小数位

    我想强制
  • 使用 JQuery 根据下拉列表选择的值显示/隐藏控件

    我正在尝试使用 JQuery 根据下拉菜单的选定索引显示 隐藏 div 标签 但它不起作用 任何帮助将不胜感激 Thanks
  • 从输入类型编号获取无效值

    我正在使用输入类型数字 当它无效时 我如何从中获取值 例如 使用类型编号并仅打印 e 这本身是无效的 我正在使用 React 但我认为这个问题非常普遍 onChange event console log event target valu

随机推荐

  • 如何在WordPress的页面代码中创建分页?

    大家好 我是 WordPress 的新手 我想在页面中创建分页 但仍然不能 我尝试下载插件或在 youtube 中的 google 中添加代码和搜索 但我仍然做不到 谁可以帮助我 这是我的页面代码
  • WebBrowser 文档完成事件 C#

    以下是我用作浏览器的功能DocumentCompleted事件 以及navBtnClick 方法负责创建 Web 浏览器并导航到特定的 url public void WebBrowser DocumentCompleted object
  • “DO”循环在 Fortran 66 中如何工作?

    我正在读一本在二手书店找到的旧书 再次 这一篇叫做 Fortran 技术 特别提到非数值应用 作者 A Colin Day 剑桥大学出版社 1972 年出版 毕竟 跟上软件开发的最新动态是非常重要的 本书声称涵盖 Fortran 66 X3
  • 如何在 NuSMV 中创建简单的 Kripke 模型?

    我目前正在做一些LTL 线性时间时序逻辑 和CTL 计算树逻辑 的理论研究 我是 NuSMV 的新手 我很难创建一个简单的 Kripke 结构 我的结构是 M S R L 其中 S s0 s1 s2 是可能状态的集合 R 是转移关系 使得
  • MacVim 中的智能窗口大小调整与分割

    我正在使用最新的 MacVim 有没有办法让我在没有文件或只有一个文件的情况下打开 MacVim 它会将窗口宽度设置为 n 个字符 那么如果我进行垂直分割 它会将窗口宽度扩展到 2n 个字符 与 3 个垂直分割相同 但在窗口达到 3n 个字
  • scala 中的柯里化语法

    scala 中柯里化的语法例如 def f x Int b Int x y is def f x Int b Int x y 对于给定范围 a 和 b 的 sum 到 sum 的柯里化是 def sum f Int gt Int a Int
  • RecyclerView 中的 EditText 值在第 5 个位置后给出相同的值

    我有一个RecyclerView每行都有一个EditText还 我正在添加项目到RecyclerView通过搜索它们 然后在编辑文本中输入数量 然后我将它发送到服务器以使用json格式存储 项目添加工作正常 滚动时也不存在编辑文本值交换问题
  • jtextpane 不换行文本

    我有一个问题文本窗格 我需要用指定的颜色标记文本的某些部分 因此我决定使用 JTextPane 和 html 标签来装饰我的文本 JTextPane 位于 JScrollPane 内部 JScrollPane 位于 JSplitPane 内
  • 无法正确读取 python 中的 SQL 表:varchar 列作为逗号分隔字符/元组导入

    我使用以下代码连接到 Oracle 数据库 jar ojdbc8 jar path jvm path jvm dll path args Djava class path s jar jpype startJVM jvm path args
  • Sails.js bodyParser - 版本 0.10.5 上的请求实体太大

    我试图将大量数据发布到我的 sails API 但收到此 413 错误 Unable to parse HTTP body error occurred Error request entity too large 我已经尝试了不同讨论中建
  • 如何使用 PowerShell 从 REPL 控制台将特定 CSV 列转换为 TitleCase?

    根据提供的答案修改工作 PS home nicholas powershell gt PS home nicholas powershell gt Get Content case csv ForEach Object ToUpper FJ
  • 使用 jQuery 检查互联网连接是否存在? [复制]

    这个问题在这里已经有答案了 如何使用 jQuery 检查是否有互联网连接 这样我就可以有一些条件说 在生产过程中使用 google 缓存版本的 JQuery 在开发过程中使用该版本或本地版本 具体取决于互联网连接 针对您的具体情况的最佳选择
  • 在 VB.NET 中将焦点更改到另一个窗口

    我正在使用 VB NET 需要激活某个窗口 这可能吗 如果是这样 怎么办 您将需要使用 Win32 API 来执行此操作 首先 通过调用找到您想要置于前面的窗口查找窗口获取其句柄 然后使用设置前景窗口API 将其带到前台 PInvoke包含
  • 有人能给我一个 jQuery 动画函数的独立代码吗

    最近我问了这个问题 想了解Animate函数 计算和步进 我得到了答复 我尝试删除不必要的 jQuery 代码 只保留 jQuery 动画功能 如果有人能给我提供具有他们技术的 jQuery 动画函数 我将非常感激 创建动画实际上非常简单
  • wsdl 错误:标题和文档没有正确分离

    我正在使用 NUSOAP 来使用 microsoftdynamics 的肥皂接口 我收到此错误 wsdl 错误 获取https testserver2013 api crm4 dynamics com XRMServices 2011 Or
  • WQL 不支持 TOP - 需要解决方法

    WQL 基本上是 WMI 的 SQL 不支持 TOP 或 LIMIT 关键字 Sql Server 使用 TOP 和许多其他 RDBMS 支持 LIMIT 等 是否有一种解决方法可以模拟 SELECT 查询的行为 就好像它具有将结果集限制为
  • 在 NHibernate Criteria 查询中连接多个字段

    我有一个Dept表和一个Emp table 我需要以这样的方式连接这两个表where子句看起来像这样 where dept deptId emp DeptId and dept deptName emp empTrainingName 我试
  • 限制android应用程序apk的共享

    我是安卓新手 我有一个应用程序 我必须限制用户将应用程序的 apk 文件共享给其他手机 Android 手机持有者 就像如果我将 apk 文件保存在我自己的网站中 那么我希望用户可以从我的网站下载 apk 而不能与其他人共享相同的 apk
  • Google Reader API - 获取提要

    有谁知道用户是否可以调用 Google Reader 服务来获取属于特定标签 类别的所有提要的名称 uri 谢谢 您可以使用以下代码的变体来访问 Google 阅读器系统 您需要在每个请求中发送标头 Authorization auth m
  • 如何检测 mithril.js 中的模型参数更改事件?

    我最近开始学习 mithril js 我想知道如何制作非常基本的模型 gt 查看单向数据绑定应用程序 TestModel function data this name m prop data name testModel new Test