Backbone.model,我该如何修改get方法

时间:2012-03-16 15:50:40

标签: javascript backbone.js

使用Backbone.model,我想更改get方法,以便在我不将参数传递给get method时获取对象...请参阅以下示例:

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"} *****

2 个答案:

答案 0 :(得分:3)

您可以覆盖Model().get(),如文档中所述:

E.g。

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);
        }
    }
});

demo

答案 1 :(得分:2)

您可以使用task.attributes执行此操作。 From the documentation

  

属性属性是包含模型状态的内部哈希。

Here's a demo