这是我第一次问一个问题,要谦虚。我第一次使用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。

09-28 10:35