如何使用model.save()中的响应对象进行集合?

时间:2014-05-16 20:05:21

标签: javascript php rest backbone.js

这就是我所拥有的:

var List = define(['backbone'], function(Backbone) {
return Backbone.Model.extend({
    urlRoot: '/lists',

    getId: function() {
        return this.get('id');
    },

    getTitle: function() {
        return this.get('title');
    }
});

var lists = define(['backbone', 'model/list'], function(Backbone, List) {
    return Backbone.Collection.extend({
        url: '/lists',
        model: List
    });
});

在我看来,我使用var model = new List(); model.save({title: '<test>'})创建了一个新模型。对服务器的post请求将在数据库中创建一个新条目,但在此之前我使用hmtlspecialchars()来删除注入的HTML代码。响应将返回已解析的数据。在前端,我想存储解析的模型而不是在前端创建的模型。怎么解决?我只找到了直接在前端保存模型的解决方案。

1 个答案:

答案 0 :(得分:0)

我是个笨蛋!创建问题后,我能够解决我的问题。只需使用模型中的成功回调:

var list = new List();
list.save(data, {
    success: function(model,response) {
        self.collection.add(response);
    }
});

当我在使用回调中的模型之前尝试这个时,我发送到后端的模型是什么。我解决了,但也许有更好的解决方案?