Backbone.js模型默认值是否覆盖我在视图中输入的null、undefined等?
我正在对Backbone.js模型默认值是否覆盖我在视图中输入的null、undefined等?,backbone.js,overriding,default-value,Backbone.js,Overriding,Default Value,我正在对Backbone.js进行我的第一步,我在理解当视图从外部获取undefined或null值时如何设置默认值时遇到了一些问题: var Status = { Models: {}, Collections: {}, Views: {}, Templates:{} } Status.Models.Message = Backbone.Model.extend({ defaults:{ icon:'path/info-icon.png'
Backbone.js
进行我的第一步,我在理解当视图从外部获取undefined
或null
值时如何设置默认值时遇到了一些问题:
var Status = {
Models: {},
Collections: {},
Views: {},
Templates:{}
}
Status.Models.Message = Backbone.Model.extend({
defaults:{
icon:'path/info-icon.png',
type:'warning',
title:'Information',
message:'There is nothing to read here.'
},
initialize:function () {
console.log("Status.Models.Message initialized");
}
});
Status.Views.Message = Backbone.View.extend({
initialize:function () {
console.log("Status.Views.Message initialized");
},
render:function () {
var template = _.template($('#status-message-template').html());
$('body').append($(this.el).attr('id', 'status-message').html(template(this.model.toJSON())));
var timer = setTimeout(function () {$('#status-message').addClass('enter')}, 1500);
}
});
我想找到一种方法,让Backbone.js
覆盖数据
参数,并强制它使用默认值
,如果它们是,未定义
或空
$(function(){
var data = {
type:undefined,
message:'This is the new message!'
};
var messageModel = new Status.Models.Message ();
messageModel.set({
type: data.type, // how to let it get defaults.type because data.type is undefined?
message: data.message
});
var messageView = new Status.Views.Message({
model:messageModel
});
messageView.render();
});
是否有一种简单的方法可以做到这一点?您的实际意思是,如果data.type未定义,如何获取默认值
您需要定义一个默认值,然后分配一个未定义的值。
通过执行data.type | | data.type_默认值,自动返回未定义的数据
var data = {
type : undefined,
default_type : "something",
...
}
messageModel.set({
type: data.type || data.default_type,
...
});