Backbone.js的带参数的获取 [英] Backbone.js fetch with parameters
本文介绍了Backbone.js的带参数的获取的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
继文档,我所做的:
var collection = new Backbone.Collection.extend({
model: ItemModel,
url: '/Items'
})
collection.fetch({ data: { page: 1} });
网址竟然是:的http://本地主机:1273 /项目[对象%20Object]
我期待像的http://本地主机:1273 /项目页= 1
那么,如何通过PARAMS在fetch方法?
So how do I pass params in the fetch method?
推荐答案
改变:
collection.fetch({ data: { page: 1} });
到
collection.fetch({ data: $.param({ page: 1}) });
因此,与出过这样做,这叫做有你的 {数据:{页:1}}
对象选项
Backbone.sync = function(method, model, options) {
var type = methodMap[method];
// Default JSON-request options.
var params = _.extend({
type: type,
dataType: 'json',
processData: false
}, options);
// Ensure that we have a URL.
if (!params.url) {
params.url = getUrl(model) || urlError();
}
// Ensure that we have the appropriate request data.
if (!params.data && model && (method == 'create' || method == 'update')) {
params.contentType = 'application/json';
params.data = JSON.stringify(model.toJSON());
}
// For older servers, emulate JSON by encoding the request into an HTML-form.
if (Backbone.emulateJSON) {
params.contentType = 'application/x-www-form-urlencoded';
params.processData = true;
params.data = params.data ? {model : params.data} : {};
}
// For older servers, emulate HTTP by mimicking the HTTP method with `_method`
// And an `X-HTTP-Method-Override` header.
if (Backbone.emulateHTTP) {
if (type === 'PUT' || type === 'DELETE') {
if (Backbone.emulateJSON) params.data._method = type;
params.type = 'POST';
params.beforeSend = function(xhr) {
xhr.setRequestHeader('X-HTTP-Method-Override', type);
};
}
}
// Make the request.
return $.ajax(params);
};
所以它发出的数据到 jQuery.ajax 将尽力追加任何 params.data code>是URL。
So it sends the 'data' to jQuery.ajax which will do its best to append whatever params.data
is to the URL.
这篇关于Backbone.js的带参数的获取的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文