如何将属性设置为我的骨干模型并保持其全局"在模型的每个实例中。
var myModel = new MyModel();
myModel.set('test', 1234);
现在,在另一个视图中,我再次实例化该模型:
var myModel = new MyModel();
myModel.get('test')
应该返回1234,而不是null。
关于如何做的任何想法?
我需要这个,因为我从其余的api中获取一个令牌,我想将它传递给每个请求。
因此,在我执行myModel.fetch()
之后,我想添加令牌的值,将其绑定到模型,因此我将在以后的所有请求中使用它。
编辑,这是实际代码:
var proxy = new Proxy(),
target = '?csurl=http://laravelws.dev/account/token';
proxy.urlRoot = proxy.urlRoot + target;
proxy.fetch(
{
dataType: 'json',
success : function (resp) {
that.token = resp.get('_token');
proxy.set('_token', that.token);
},
error : function (model, xhr, options) {
console.log('router.js - could not fetch the CSRF token');
}
}
);
我希望将令牌传递给代理模型,并使该令牌可用于该模型的所有未来实例。
此代码进入路由器的初始化功能 - 因此,每当有人登陆我的应用程序或刷新页面时,都会收到此请求。
答案 0 :(得分:1)
使用默认值:
var MyModel = Backbone.Model.extend({
defaults: {
test: 1234
}
});
编辑:
要实现您正在寻找的东西,您可以在原型上设置值:
Proxy.prototype.token = "XXX";
var proxy = new Proxy();
console.log(proxy.token);
请注意,token
值将被共享(如果您更改了值,则会更改所有代理实例)。