我不知道如何使 Backbone.sync 适合我的情况。这就是为什么我仍然在我的项目中使用这个通常的 Ajax-Request:
$.ajax({
url: request,
status: status,
type: 'GET',
dataType: 'json',
beforeSend: function (req) { req.setRequestHeader("Authorization", auth) },
success: function (data, status) {
//update the model
},
error: function(XMLHttpRequest, textStatus, errorThrown){
//do stuff
}
});
我需要向请求标头添加 base64 编码授权并更新模型。我从服务器获得的数据包含比我的模型需要的更多信息。这就是为什么我不能将模型直接引用到这样的 url:
var MyApp.myModel = Backbone.Model.extend({
url: '/someResourceUrl'
});
MyApp.myModel.fetch();
我需要做某事。喜欢:
var MyApp.myModel = Backbone.Model.extend({
url: 'anyurl',
sync: myOwnSpecificSync,
});
//Define the sync function:
myOwnSpecificSync = function(method, model, options) {
//add header
//return only specific parameters of the success data
};
//let the model fetch the data from the server
MyApp.myModel.fetch();
但我不知道如何实现这些功能..或者它是否正确。