这是我第一次问一个问题,要谦虚。我第一次使用requirejs(以及Backbone和Underscore),并且在视图中使用jQuery ajaxPrefilter方法来设置像这样的ajax调用的基本URL。
$.ajaxPrefilter(function(options, originalOptions, jqXHR) {
options.url = '//mysite.com' + options.url;});
这样,我可以在模型/集合中使用简单的网址,例如“ / notes”。现在看来,我必须在每个视图中都放置ajaxPrefilter调用。有什么地方可以调用一次并将其应用于所有视图吗?
谢谢。
最佳答案
我和你做过同样的事情:
$.ajaxPrefilter( function( options, originalOptions, jqXHR ) {
options.url = App.config.getValue('api') + options.url;
});
如果您使用的是Backbone.Router,则可以像我一样将其放入初始化函数中。
define([
'jquery',
'underscore',
'backbone',
'app',
],
function($, _, Backbone, App) {
return Backbone.Router.extend({
routes: {
'' : 'index'
},
start: function() {
Backbone.history.start({pushState: true});
}
initialize: function() {
$.ajaxPrefilter( function( options, originalOptions, jqXHR ) {
options.url = App.config.getValue('api') + options.url;
});
}
});
});
App.config是我添加的东西,因此我可以为每个环境获取正确的URL。