我开始开发一个具有 backbone+require 的应用程序。我想在多个视图之间共享模型的相同实例。我已将模型定义为单例,因此所有视图都访问模型的同一实例。
我评估了两个选项:
1.使用带有模型实例的事件作为参数来传达视图
2.在视图之间共享模型的同一实例。
我选择了第二个选项,向我的模型添加了一行新行:
define(['Underscore','Backbone'],
function(_, Backbone) {
var Experience = Backbone.Model.extend({
defaults: {
'id' : 1,
'date' : '2012-10-11 '
}
});
if (this.model === undefined) return new Experience();
});
然后我将模型绑定到我的视图
define([ 'jQuery','Underscore','Backbone','models/experience'
], function($, _, Backbone, Experience){
var MyView1 = Backbone.View.extend({
initialize: function () {
this.model = Experience;
....
这样,具有此模型的所有视图都可以共享它。
有没有更好的方法来共享骨干中的模型实例?使用事件和实例作为参数会更好吗?
恕我直言,在您的情况下,单例是要走的路。
在很多模型之间共享的非常通用的视图的情况下,将实例传递给视图将很有用,据我所知,这不是您的情况。