Javascript Backbone.model,我应该如何修改get方法
使用Backbone.model,我想更改get方法,以便在我未将参数传递给get方法时获取对象。。。请参见以下示例:Javascript Backbone.model,我应该如何修改get方法,javascript,backbone.js,Javascript,Backbone.js,使用Backbone.model,我想更改get方法,以便在我未将参数传递给get方法时获取对象。。。请参见以下示例: Task = Backbone.Model.extend({}); task = new Task({ id: 2, name: "taskName" }); task.get("id"); // 2 // ***** ok ****** task.get("name"); // "taskName" // ***** ok ****** task.get(
Task = Backbone.Model.extend({});
task = new Task({
id: 2,
name: "taskName"
});
task.get("id"); // 2 // ***** ok ******
task.get("name"); // "taskName" // ***** ok ******
task.get(); // undefined // ******* it should be {id: 2, name: "taskName"} *****
您可以使用task.attributes执行此操作:
attributes属性是包含模型状态的内部哈希
.您可以使用task.attributes执行此操作:
attributes属性是包含模型状态的内部哈希
.您可以覆盖Model.get,如文档中所述:
例如
您可以覆盖Model.get,如文档中所述:
例如
有没有理由不使用task.attributes?这一点也不愚蠢,get可以返回整个对象。这似乎很合乎逻辑。我认为一个人应该尽可能少写,让事情变得更明显。有没有理由不使用task.attributes?这一点也不愚蠢,get可以返回整个对象。这似乎是合乎逻辑的。我认为一个人应该尽可能少写,让事情变得更加明显。
Task = Backbone.Model.extend({
get: function(attribute){
if(typeof attribute === "undefined"){
return this.attributes;
// Or, assuming you’ve also got json2.js available:
// return this.toJSON();
}
else {
return Backbone.Model.prototype.set.call(this, attribute);
}
}
});