为什么Backbone js同时调用多个请求

时间:2013-12-27 06:29:54

标签: javascript node.js backbone.js

请给我解决方案,我可以单独拨打电话,删除或获取请求。当我加载到脚本下面。它同时得到三个ajax调用put,delete和get请求。

 var UserModel = Backbone.Model.extend({
        urlRoot: '/test.php',
        defaults: {
            name: '',
            email: ''
        }
    });
     var user = new UserModel({id: 1});
    // Notice that we haven't set an `id`
    var userDetails = {
        name: 'Thomas',
        email: 'thomasalwyndavis@gmail.com'
    };
    // Because we have not set a `id` the server will call
    // POST /user with a payload of {name:'Thomas', email: 'thomasalwyndavis@gmail.com'}
    // The server should save the data and return a response containing the new `id`
    user.save(userDetails, {
        success: function (user) {
            console.log('save call back');
        }
    })

    user.destroy({
        success: function () {
            console.log('Destroyed');
        }
    });

     user.fetch({
        success: function (user) {
            console.log(user.toJSON());
        }
    })

1 个答案:

答案 0 :(得分:3)

此代码片段混合了初始化,创建和使用。模型初始化是

var UserModel = Backbone.Model.extend({
    urlRoot: '/test.php',
    defaults: {
        name: '',
        email: ''
    }
});

上面的代码描述了用户模型,应该在页面/应用程序生命周期中运行一次。

以下是用户模型实例的创建:

 var user = new UserModel({id: 1});

但与你的例子更相关的可能是

 var user = new UserModel({
    id: 1,
    name: 'Thomas',
    email: 'thomasalwyndavis@gmail.com'
 });

然后,您可以对创建的用户执行一些操作:save,destroy或fetch。但不是所有人都同时出现。例如,您可以在用户单击页面上的按钮时将其删除:

$('.delete-button').click(function () {
    user.destroy({
        success: function () {
            console.log('Destroyed');
        }
    });
});

因此,所有这些代码片段通常位于应用程序的不同部分,并且用于不同的目的 - 在您的代码示例中,它们都在同一个位置,因此示例很乱,其目的不明确。