gpt4 book ai didi

javascript - 在 BackBone 模型 Ajax 函数中自动分配某些值

转载 作者:行者123 更新时间:2023-11-30 13:15:10 26 4
gpt4 key购买 nike

我正在使用 Backbone js 创建类似服务的应用程序。每个应用程序都有一个 user_id 和一个已设置的 application_id。每次主干调用 fetch()、save() 或任何其他 RESTful/ajax 函数时,我希望 user_id 和 application_id 自动与模型数据一起传递。

我知道我将不得不扩展 Backbone 模型,然后确保我的所有模型都从这个模型扩展,但是我要修改什么以及如何调用父模型?

伪例子(不太确定)

MyModel = Backbone.Model.extend({
save : function(data) {
data.application_id = 3;
data.user_id = 5;
parent.save(data);
}
});

Scores = MyModel.extend({
default : {
score : 0
}
});

//This should automatically grab the application id and user id
scores = new Scores();
scores.set('score', 5);
score.save()

我如何正确完成此操作?我所说的完成是指代码中的一个点将用于 save()、fetch() 和 destroy()?

最佳答案

如何修改您的 Backbone 同步?如果您确定要将 user_idapplication_id 传递给 save() fetch() 和 destroy() 上的每个模型,那么您我相信可以做这样的事情......

/* alias away the sync method */
Backbone._sync = Backbone.sync;

/* new Backbone.sync method */
Backbone.sync = function(method, model, options) {

// For example purpose, this will only run on POST, PUT, and DELETE requests
// If you want you can also set it for method == 'read' for your fetch()

if (method == 'create' || method == 'update' || method == 'delete') {
model.set('user_id', userID);
model.set('application_id', appID);
}

/* proxy the call to the old sync method */
return Backbone._sync(method, model, options);
};

我为我的 CSRF token 检查做了类似的事情,以防止跨站点注册伪造。除了不操纵模型,我确保我所有的 POST、PUT 和 DELETE 请求都有一个特殊的 X-CSRF header 和我的唯一 token 。

关于javascript - 在 BackBone 模型 Ajax 函数中自动分配某些值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12272550/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com