【问题标题】:Backbone.js change event not firing when value is same as previous value prior to null set当值与空集之前的先前值相同时,Backbone.js 更改事件不会触发
【发布时间】:2013-04-16 01:29:48
【问题描述】:

1) 将模型数据设置为值model.set({state : 'wa'})

2) 设置模型数据为空model.set({state : null})

3) 将模型数据设置为第一个值model.set({state : 'wa'})

当您在将模型数据设置为 null 之前将其设置为之前的值时,不会触发 change 事件。如果我在步骤 1 中将示例更改为显示 model.set({state : 'ca'}),它将触发所有三个集合的更改事件。在此示例中,仅触发了两个更改事件,仅针对第 1 步和第 2 步。

为什么将值设置为 null 之前的前一个值时,主干不会触发事件?

附言

我刚刚检查了model.previousAttrbutes(),看看它是否在将值设置为空时没有更新。确实如此。所以为什么不触发更改事件仍然没有意义。

【问题讨论】:

  • 似乎在fiddle 中工作。你在做什么不同的事情?可能正在分配null 值被validators 阻止,防止属性的set 将属性保留为旧值,因此不会触发更改。不确定,可能只有 A。

标签: javascript backbone.js


【解决方案1】:

为了解决这个问题,我只是使用了unset()

model.unset('state',{silent: true});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-23
    • 2014-07-21
    • 2011-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-23
    相关资源
    最近更新 更多