覆盖骨干模型更改事件

2024-04-30

我认为我想做的事情很简单,我只是不知道该怎么做。当我的模型属性之一发生更改以便将一些数据传递给事件处理程序时(无论更改是值的增加还是减少),我想触发我自己的事件。

基本上我希望我的处理程序在视图中执行此操作

handler: function(increased) {
   if(increased) {
      alert("the value increased")
   }
   else {
      alert("the value decreased")
   }
}

// ...

this.model.on("change:attr", this.handler, this);

给你:你基本上听的是change:myvar。当发生变化时,您使用模型的previous()以获得旧值。根据它是增加还是减少,您将触发适当的事件。您可以监听这些事件,如下所示initialize().

(function($){

    window.MyModel = Backbone.Model.extend({

        initialize: function () {
            this.on('change:myvar', this.onMyVarChange);
            this.on('increased:myvar', function () {                  
                console.log('Increased');                
            });
            this.on('decreased:myvar', function () {                  
                console.log('Decreased');                
            });
        },

        onMyVarChange: function () {
            if (this.get('myvar') > this.previous('myvar')) {
                this.trigger('increased:myvar');  
            } else {
                this.trigger('decreased:myvar');
            }
        }            
    });

    window.mymodel = new MyModel({myvar: 1});
    mymodel.set({myvar: 2});
    mymodel.set({myvar: 3});
    mymodel.set({myvar: 1});

})(jQuery);​

运行上面的代码将在控制台上打印“Increased”、“Increased”、“Decreased”。

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

覆盖骨干模型更改事件 的相关文章

  • 在 JavaScript 中生成 RSA 密钥对

    我最近发现了这个 RSA JavaScript 库 http www ohdave com rsa http www ohdave com rsa 但是 它要求预先生成密钥 这是我的问题 问题 我想在 JavaScript 中生成 RSA
  • 跨域XMLHttp请求

    这是我的情况 我有一台 Web 服务器机器 一台客户端机器和第三台运行一些侦听 XMLHttpRequest 的程序的机器 客户端从客户端计算机访问网络服务器 进行一些更改 然后单击 保存 此时 数据被发送回网络服务器和第三台机器 所有这些
  • Jasmine-jQuery loadFixtures 未定义

    我对整个茉莉花的事情仍然很陌生 在过去的几个小时里我陷入了这个问题 我尝试使用 loadFixture 加载外部夹具文件 我使用 Jasmine 2 0 0 和 Jasmine jQuery 2 0 5 ReferenceError loa
  • 使用 javascript 更改 div 颜色

    div style height 20px width 100 background color 000000 div br
  • 第一次使用node.js - “ReferenceError:节点未定义”

    我刚刚安装了node js 我尝试编写应该检查版本的node v 但它不起作用 这是输出 gt node v ReferenceError node is not defined at repl 1 2 at REPLServer self
  • 仅单击 div 内部

    我正在为一个小网站制作教程 我只想让教程气泡可点击 因此 当我们尝试单击气泡之外的某些内容时 什么也不会发生 换句话说 我希望我的 html 不可点击 而 tutorial bubble 可点击 尝试这个 jQuery function h
  • Web 组件 - 服务/非 html 组件

    所以我来自 Angular 想看看如何创建vanilla Web components 现在 从 Angular 开始 我们倾向于将事物分开 组件 充当 HTML CSS 和一些 javascript 然后是 服务 主要负责收集数据和执行不
  • 确定元素是在页面折叠上方还是下方

    我有一些页面有多个输入框 用户可以在其中输入文本 在单击 下一步 按钮之前 需要填写其中一些内容 我弹出验证错误供用户查看 但是如果问题不在页面上 我希望页面滚动到它 而不是他们必须搜索丢失 错误的字段 我有一个滚动到位 但我无法确定要滚动
  • 有没有办法将变量从 javascript 导入到 sass 或反之亦然?

    我正在制作一个依赖于块概念的 CSS 网格系统 所以我有一个基本文件 例如 max columns 4 block width 220px block height 150px block margin 10px 它被 mixin 使用 m
  • 在 jQuery 可排序中对多个选定项目进行排序?

    我试图在 jQuery 可排序集中选择多个项目 然后将选定的项目一起移动 这是我的弱点开始尝试使其发挥作用 http jsfiddle net benstenson CgD8Y 这是代码 HTML div class container d
  • jQM / jquery-collagePlus 使用问题

    我正在使用 jQM 构建应用程序 并且尝试使用 jquery collagePlus http ed lea github io jquery collagePlus http ed lea github io jquery collage
  • Google 地图 API:忽略 DirectionService 请求中的季节性限制

    我目前正在开发一张地图 其中显示两点之间的最短路线 使用不同的交通工具 我注意到 有时 例如在冬季关闭的道路不会被考虑在内 我发现我可以使用方向服务 下面的代码 忽略高速公路 收费站和渡轮 但我一生都无法弄清楚如何 是否可以忽略季节性限制
  • Node.js 未处理的“错误”事件

    我编写了一个简单的代码并将其保存在文件 try js 中 var http require http var makeRequest function message var options host localhost port 8080
  • JavaScript 数组扩展语法的时间复杂度是多少?

    我想知道在 JavaScript 中使用数组扩展的时间复杂度是多少 是线性 O n 还是常数 O 1 下面的语法示例 let lar Math max nums 传播称为 Symbol iterator 有关对象的属性 对于数组 这将迭代数
  • IE 中的每个 JavaScript 支持?

    我有这个代码
  • JavaScript:测试与执行

    我想知道检查字符串 例如邮件 密码等 的最佳方法是什么 i exec a vs i test a exec返回值 test true test 1 way var mail req body mail if check mail exec
  • Node.js - 重载函数

    有没有一种方法可以重载node js中的函数 类似于 noSuchMethod https developer mozilla org en JavaScript Reference Global Objects Object noSuch
  • 在 HTML5 iOS 7 / iOS 8 中显示十进制键盘

    经过几个小时的搜索后 我只是有一个简单的问题 是否有可能在网络浏览器输入字段中显示小数键盘 input type number 只显示数字 但我需要在左下角使用逗号或点 我尝试过任何事情 pattern step等等 但没有显示十进制键盘
  • Node npm 包抛出使用严格:全局发布和安装后未找到命令

    我正在尝试发布 npm 包 当我全局安装该包并尝试运行 cli 命令时 我收到此错误 nvm versions node v0 12 2 bin myPack line 1 use strict command not found nvm
  • 使用 JQuery 根据下拉列表选择的值显示/隐藏控件

    我正在尝试使用 JQuery 根据下拉菜单的选定索引显示 隐藏 div 标签 但它不起作用 任何帮助将不胜感激 Thanks

随机推荐

  • 为什么我使用的 KnownType 属性是错误的?

    我正在尝试反序列化来自 google api 的 json 响应 所以我想我应该定义几个类来帮助它 DataContract public class DetectionResult ResponseData DataMember Name
  • ExtGWT 与 ExtJS [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 当开始一个新的应用程序时 您会权衡哪些因素来决定是使用 ExtGWT 还是 ExtJS 对于同时了解 Javascript 和 Java 的程序
  • 朴素分类器 matlab

    在 matlab 中测试朴素分类器时 即使我在相同的样本数据上进行训练和测试 我也会得到不同的结果 我想知道我的代码是否正确 是否有人可以帮助解释这是为什么 dimensionality reduction columns 6 U S V
  • 在鼠标悬停时在右侧或左侧扬声器上播放声音[重复]

    这个问题在这里已经有答案了 我正在尝试使用 PyQt5 用 python 编写小程序 该程序将有两个按钮 中间有一个标签 当鼠标移到标签上时 我想调用一个 def 以便更改按钮的颜色并从特定扬声器 左或右 播放声音 我尝试了 pygame
  • 如何在 Visual Studio 2017 项目(新的 .csproj 文件格式)中设置“OutputPath”,而不会使目标框架扰乱解析的路径?

    Setting OutputPath在新的 Visual Studio 2017 项目格式中 会自动在路径中添加目标框架 例如 如果我在项目文件中设置了这些
  • Ansible 权限问题

    我正在尝试将当前用户添加到系统中的某个组 然后执行需要该组权限的命令 我的剧本是这样的 name Add this user to RVM group sudo true user state present name vagrant ap
  • 绘制顶部有函数线的直方图

    我正在尝试使用 SciPy 进行统计 使用 matplotlib 进行绘图 在 Python 中进行一些分布绘图和拟合 我在创建直方图等方面运气很好 seed 2 alpha 5 loc 100 beta 22 data ss gamma
  • 了解 C# 中的自签名证书

    最近我遇到了这个c 代码 var dn new X500DistinguishedName CN appSettings CommonName OU appSettings OrganizationalUnit X500Distinguis
  • 第一响应者设置不正确

    我有一个分组表视图 并尝试在用户按 Enter 时将新的第一响应者设置为文本字段 这对我来说不是什么新鲜事 在我进行一些不相关的更改之前我的代码可以工作 但现在却不能了 当我设置第一响应者时 我有一个指向正确文本字段的指针 但没有任何反应
  • .NET类设计问题

    我有一个名为 Question 的类 它有一个名为 Type 的属性 基于这种类型 我想以特定的方式将问题呈现为html 多项选择 单选按钮 多个答案 复选框等 我从一个 RenderHtml 方法开始 该方法根据问题类型调用子方法 但我认
  • 主题中的文本外观

    我想将主题中的文本外观设置为 TextAppearnance Large 这是我在 styles xml 中所做的事情 我的应用程序在清单中指向这个主题 问题 我的文字仍然显示很小 问题 我在尝试在活动中使用预定义的 TextAppeara
  • 迭代时跳过相同的多重映射值

    有没有什么好方法可以实现下面所需的输出 而不必删除相同的值或创建另一个列表 向量等 我正在尝试将不同文档中找到的单词映射到其文档名称 如所需输出中所示 include
  • self.navigationController?.popViewControllerAnimated 来自 UIAlertController

    我是 swift 的新手 但我想我已经掌握了它的窍门 但这对我的进步来说是相当困难的 我想做的是 当我们找不到与用户查询相关的数据时 向用户抛出一条错误消息 然后继续将他带回之前的 ViewController 然而 我在做这件事时遇到了真
  • 如何获取 Android 中其他应用程序的屏幕时间?

    我想达到在 Android 系统上运行的每个应用程序的屏幕时间 例如 Facebook 工作时间为 3 小时 但屏幕时间为 1 2 小时 我怎么才能得到它 android app usage 使用情况统计 public final clas
  • MySQL 查询在基于特定标签组合获取行时返回不需要的行

    我在 Windows 8 PC 上运行 PHP MySQL 我有一张桌子mytable像下面这样 product tag lot 1111 101 2 1111 102 5 2222 103 6 3333 104 2 4444 101 2
  • 在 Sass mixin 中跳过可选参数

    我有这个 mixin 来处理简单的 CSS3 线性渐变 mixin linear gradient from to dir bottom dir webkit top ie filters false background color to
  • MapSingleType错误

    我通过 MVC3 创建一个项目 并首先使用 EF Code 作为数据访问层 在我的数据库中我有PackaginInfo表 在项目中我关心包类 这是我的代码 public class Package public decimal Packag
  • 在 python 中检查堆栈中的局部变量

    我编写了一个小函数 它在堆栈中查找一级并查看其中是否有变量 但是我如何将这个函数变成一个可以在堆栈中一直查找直到找到一个局部变量并购买某个特定名称的函数 import inspect def variable lookup variable
  • Knexjs 返回 mysql 时间戳、日期时间列作为 Javascript Date 对象

    我正在使用 knex 并以格式插入数据YYYY MM DD HH mm ss e g 2017 07 14 15 00 00 保存后 当提取数据时 日期时间列值将作为 JavaScript Date 对象返回 我想以以下格式返回这些对象YY
  • 覆盖骨干模型更改事件

    我认为我想做的事情很简单 我只是不知道该怎么做 当我的模型属性之一发生更改以便将一些数据传递给事件处理程序时 无论更改是值的增加还是减少 我想触发我自己的事件 基本上我希望我的处理程序在视图中执行此操作 handler function i