你如何从collection.create调用获得model.id?

时间:2014-09-04 23:38:00

标签: javascript backbone.js

我需要使用COLLECTION.create调用中的模型ID来重定向用户以执行新页面

window.href = 'https://example.com/document/' + model.id

我不关心对其余api的ajax调用是异步还是同步(如果这很重要)。我希望我能做到这样的事情:

var OPTS ={}
OPTS['success'] = function( response, model, options ){
                model.id
}

SOMECOLLECTION.create(json_attributes,OPTS)

但这不起作用。我使用Django-Tastypie作为我的REST API。

1 个答案:

答案 0 :(得分:1)

这应该有效

var MyCollection = Backbone.Collection.extend({
    url: '/echo/json/'
});

var my_collection = new MyCollection();

var model = my_collection.create({ name: "Eugene", age: 31 }, {

    success: function(response, model) {
        console.log(model.id);
        // id: 123
    }

});

console.log(model.id);
// id: undefined

我在这里创建了工作示例http://jsfiddle.net/6wup7q9e/3/

请检查您的网络标签,看看您的REST API有哪些响应,以及您的json_response和新id属性将用作模型ID。就我而言,它将是:

{
    id: 123,
    name: "Eugene",
    age: 31
}