私は最初の一歩を踏み出しましたが、ビューが外部から値を取得した場合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
paramsをオーバーライド して、値が、またはの場合に値data
を使用するように強制する方法を見つけたいと思います。defaults
""
undefined
null
$(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();
});
それを行う簡単な方法はありますか?