Почему `init` из shim в моей конфигурации require.js не вызывается?

Обновить:

Я писал небольшой модуль для решения этой проблемы токена csrf впозвоночник пока я не получил push-уведомление об ответе @ Луи.

Его ответ довольно элегантный и кажется хорошим, но я уйдуссылка к моемуbackbone.csrf Модуль github repo как раз для всех, кому это нужно.

================================================== ==================

я используюпозвоночник в качестве основы моего внешнего интерфейса вместе с моимДжанго бэкенд.

Я должен был настроить мойBackbone.sync установить заголовок запроса CSRF для каждого отдельного запроса AJAX перед его отправкой для совместимости с системой защиты CSRF Django.

Так как я использовалrequire.js для модульной разработки JavaScript, я попытался настроить это вshim.init изrequire.config так что это переопределение будет запущено, как только Backbone загрузится в браузере:

<script>
    var require = {
        ...

        shim: {
            'jquery': {'exports': 'jQuery'},
            'backbone': {
                'deps': ['underscore', 'jquery'],
                'exports': 'Backbone',
                'init': function(_, $) {
                     alert('NOT EVEN CALLED');
                     var originalSync = this.Backbone.sync;
                     this.Backbone.sync = function(method, model, options) {
                         options.beforeSend = function(xhr) {
                             xhr.setRequestHeader('X-CSRFToken', window.csrf_token);
                         }
                         return originalSync(method, model, options);
                     }
                 }
            }
        }
    }
</script>
// Load require.js
<script src="require.js"></script>

Хотя Backbone успешно загружен, 'init' требуемой конфигурации не вызывается.

В чем проблема?

Ответы на вопрос(1)

Ваш ответ на вопрос