从一个模型到另一个模型的引用var在Backbone中返回默认值
Reference var from one model to another returns defaults in Backbone
我有一个设置默认值的模型,如下所示:
var CampModel = Backbone.Model.extend({
defaults: {
siteID: $.jStorage.get('currentSiteID'),
active: -1,
pending: -1,
},
url: function () {
//some url.
},
sync: function (method, model, options) {
var method = 'read';
var that = this,
options = options || {};
options.success = function(model, response, options){
if(response.errorMessage != "Session is over")
console.log('Update session');
if(response.success)
if(response.returnValue.length){
that.set('response', response.returnValue);
that.CountActiveAndPending(response.returnValue);
}
else {
that.set('response', []);
}
else console.log('report: bad request, error: '+ response.errorMessage);
}
Backbone.sync(method, model, options);
},
},
//Counts active and pending campaigns for front page.
CountActiveAndPending: function (data) {
var active = 0;
var pending = 0;
//var it = this;
$.each(data, function (index, val) {
if (val.ApprovedOnSite) active++;
else pending++;
});
this.set('active', active);
this.set('pending', pending);
}
});
在另一个模型中,我尝试获得模型参数,比如:
this.set({
campModel: new CampModel(),
})
});
this.get('campModel').save();
console.log(this.get('campModel').get('active'));
},
一切似乎都运行得很好,但当我试图从CampModel中获取"活动"参数时,我得到的是-1默认值,而不是模型中分配的值。有没有想过为什么会发生这种事?
Model#save
是异步的,当您执行以下操作时:
console.log(this.get('campModel').get('active'));
服务器还没有响应,所以CountActiveAndPending
从未被调用,active
仍然是-1
。尝试将其值记录在success
回调中。
相关文章:
- 在VanillaJS中模拟模型双向数据绑定
- 控制台返回var不是't定义,但它是
- 从var向代码隐藏函数传递值
- 如何通过引用var Using DataTables来进行分页或排序
- jQuery语法添加了var
- 如何将具有文本类型值的var放入jQuery函数中
- 为集合分配大量的模型弹药
- 如何使用backbone.js从集合中获取模型名称
- JS:检查URL中的参数,然后迭代一个参数为var的函数
- 当var==0时,我如何显示一个警报
- 骨干模型默认值-todos.js示例中不必要的代码
- EmberJS中支持单字母单词模型
- 2个backbone.js集合,具有相同的模型,但排序顺序不同
- 将不在模型中的数据返回到mvc控制器
- 如何在视图模型contet更新更新上调用Jquery函数
- 如何使用Javascript客户端对象模型检索Sharepoint 2010列表项权限
- 断言var集通过<输入ng模型>不是未定义的
- 在 FTL 中向我的模型发送一个 JavaScript var
- 从一个模型到另一个模型的引用var在Backbone中返回默认值
- 将ng模型var设置为取消angularjs中输入的值