我有一个使用 RequireJS 编写的 Backbone 多页应用程序。由于它是多页的,我决定不使用路由器,因为它太乱了。我尝试了多种方法来创建要在整个应用程序中使用的单例对象
var singletonModel= Backbone.Model.extend({
}),
return new singletonModel;
对于上述内容,我只是使用 define 方法在我的类中引用 singletonModel 模型,然后按原样调用它
this.singleton = singletonModel;
this.singleton.set({'test': 'test'});
在我下一页的一个模块上,然后我调用类似的东西
this.singleton = singletonModel;
var test = this.singleton.get('test');
单例对象似乎重新初始化并且测试对象为空
var singletonModel= Backbone.Model.extend({
}, {
singleton: null,
getSingletonModelInst: function () {
singletonModel.singleton =
singletonModel.singleton || new singletonModel;
return singletonModel.singleton;
}
});
return singletonModel;
对于上述内容,我只是使用 define 方法在我的类中引用 singletonModel 模型,然后按原样调用它
this.singleton = singletonModel.getSingletonModelInst();
this.singleton.set({'test': 'test'});
在我下一页的一个模块上,然后我调用类似的东西
this.singleton = singletonModel.getSingletonModelInst();
var test = this.singleton.get('test');
再次看起来单例对象正在重新初始化并且测试对象为空。
我想知道问题是否是因为我使用的是没有路由器的多页应用程序,所以没有保留状态?有没有人尝试过在多页面应用程序中使用单例对象?如果是这样,您是否做了与在单页应用程序上实现方式不同的事情?
谢谢, 真皮