我在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 覆盖 data params,并强制它在""、undefined或null的情况下使用defaults值。
$(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();
});有没有一种简单的方法来做到这一点?
发布于 2013-03-24 22:31:15
您的意思是,在data.type未定义的情况下,如何获得默认值?
您需要定义默认值,然后分配未定义的默认值。通过执行data.type \ data.type_default,将自动返回未定义的那个。
var data = {
type : undefined,
default_type : "something",
...
}
messageModel.set({
type: data.type || data.default_type,
...
});https://stackoverflow.com/questions/15604237
复制相似问题