Javascript 主干js中的模型更改事件顺序
是否保证总是在“更改”事件之前触发“更改:属性”事件? 以下是一个例子:Javascript 主干js中的模型更改事件顺序,javascript,model-view-controller,backbone.js,Javascript,Model View Controller,Backbone.js,是否保证总是在“更改”事件之前触发“更改:属性”事件? 以下是一个例子: MyModel = Backbone.Model.extend({ property1: 'value1', property2: 'value2' }); var myModel = new MyModel(); myModel.bind('change:property1', function () { alert("change pty1"); }) .bind('change', f
MyModel = Backbone.Model.extend({
property1: 'value1',
property2: 'value2'
});
var myModel = new MyModel();
myModel.bind('change:property1', function () { alert("change pty1"); })
.bind('change', function () { alert("change"); })
.bind('change:property2', function () { alert("change pty2"); });
是否保证绑定到“change”的函数将在最后启动?简短回答:是
查看源代码,是的,individual:changes
在循环中被触发,然后,如果有任何更改,将触发主change
事件。如果您通过了silent:true
,则这些命令都不会触发
单个更改事件触发的顺序取决于传递给.set()
的属性的顺序简短回答:是
查看源代码,是的,individual:changes
在循环中被触发,然后,如果有任何更改,将触发主change
事件。如果您通过了silent:true
,则这些命令都不会触发
单个更改事件触发的顺序取决于传递到
.set()
的属性的顺序感谢您深入了解主干的源代码!我想知道这是实现细节还是设计选择。我不想依赖一个简单的细节。想知道为什么没有正确的文档记录。主干也有许多其他问题,例如大部分冗余的下划线依赖性。事实上,我重写了我自己的整个实现(花了6个小时,包括许多新功能),所以我已经熟悉了源代码:)很好:)你开源了吗?因为我使用了uu模板引擎,所以uu依赖关系对我来说还可以。我根本没有时间记录它,而且它可能有一些bug,因为我已经很久没有使用它了。使用它需要文档,因为模板引擎也是自制的,并且用法与主干略有不同(例如,不需要绑定任何更改事件)。如果你感兴趣的话,我仍然可以把完整的资料放在某个地方让你看。我很好奇你是怎么做到的。如果你把它开源,我一定会看一看。不过,我不打算在生产中使用它:)感谢您深入了解主干网的来源!我想知道这是实现细节还是设计选择。我不想依赖一个简单的细节。想知道为什么没有正确的文档记录。主干也有许多其他问题,例如大部分冗余的下划线依赖性。事实上,我重写了我自己的整个实现(花了6个小时,包括许多新功能),所以我已经熟悉了源代码:)很好:)你开源了吗?因为我使用了uu模板引擎,所以uu依赖关系对我来说还可以。我根本没有时间记录它,而且它可能有一些bug,因为我已经很久没有使用它了。使用它需要文档,因为模板引擎也是自制的,并且用法与主干略有不同(例如,不需要绑定任何更改事件)。如果你感兴趣的话,我仍然可以把完整的资料放在某个地方让你看。我很好奇你是怎么做到的。如果你把它开源,我一定会看一看。但我不会在生产中使用它:)