主干.js当服务器数据为空时 model.fetch
Backbone.js model.fetch when server data is empty
我有一个应用程序,我们使用model.fetch()从服务器中提取JSON,我们将其作为渲染函数,在模型更改时触发:
if(_.isUndefined(this.model.get("id_number"))){
this.template = initialTemplate;
} else if(this.model.get("id_number") == 0) {
this.template = templateA;
} else {
this.template = templateB;
}
return BaseView.prototype.render.call(this);
在页面加载上,我们还没有做 model.fetch() 并获取 initialTemplate。当用户更改输入时,我们会获取并获取 ID 为 0 或其他值的新模型数据。
现在,服务器 JSON 也有可能更改为空 {},如果是这样,我们需要恢复为显示 initialTemplate。问题是,如果是这种情况,model.fetch() 似乎不会返回任何内容,也不会发生任何变化。如果未定义id_number,则相同。(如果它为空,它确实有效。
有没有解决方案让 Backbone 获取空数据集?
解决方案是斯蒂芬提到的:成功函数。我把它添加到 model.fetch() 函数中:
success: function(model, response /*jshint unused: false */) {
if (_.isEmpty(response)) {
view.model.set("id_number", undefined);
}
},...
仅供参考,将来使用它的任何人:Backbone 不会让你只传递response
函数,因为它期望首先model
。你可以传递model
而不使用它,但你需要上面的注释才能通过JSHint。
在模型中设置默认值
这是文档。http://backbonejs.org/#Model-defaults
相关文章:
- Ember Data DS.Model's set函数不起作用
- fetch() 函数未在 Ubuntu Chromium 浏览器上定义
- 当json解析空响应时,Whatwg-Fetch失败,我该如何防止它
- C#asp.net mvc Set CheckBoxFor已检查的具有Model Value的属性
- IE11中的第二个调用取消了第一个Fetch API调用
- Rails将JavaScript对象存储到Model的有效方式
- 从 Javascript 中设置 ng-model name
- ajaxStart和ajaxStop等同于fetch API
- Nano Scroller在引导程序DropDown和Model Box中不起作用
- fetch is not updating collection.model.models
- 主干.js当服务器数据为空时 model.fetch
- Model.fetch after a model.set:意外行为或错误
- Backbone JS Model Fetch在Fiddler中返回200,但调用错误方法
- Backbone.js fetch() JSON to model get() returns undefined
- Backbone Model Fetch()正在向url添加额外的参数
- Backbone model.fetch()回调(调用setTimeout)中的作用域问题
- 如何知道Backbone model.fetch()何时完成
- 使用RequireJS分离Backbone.js对象后,Model.fetch()回调不起作用
- Backbone.js在View提交事件时执行Model fetch
- 如何将两个参数传递给骨干中的model.fetch()