requirejs require jquery未定义

时间:2015-04-15 10:00:04

标签: javascript requirejs

我已经阅读了很多有关此问题的SO问题,我甚至根据其中一个答案建议从data-main属性移出配置,但仍然没有运气。

我有rj_config.js

"use strict";

var require = {
    baseUrl: '/static/js',
    paths: {
        'jquery': '../vendor/jquery/dist/jquery.min',
        'jquery-ui': '../vendor/jquery-ui',
        'bootstrap': '../vendor/bootstrap-sass/assets/javascripts/bootstrap.min'
    },
    shim : {
        'bootstrap' : { 'deps' :['jquery'] }
    }
};

和project.js

"use strict";

require(['jquery', 'bootstrap'], function($, bootstrap) {
    // sets up the csrf on ajax calls
    $.ajaxSetup({
        beforeSend: function(xhr, settings) {
            var csrftoken = $('meta[name="csrf-token"]').attr('content');
            xhr.setRequestHeader("X-CSRFToken", csrftoken);
        }
    });
});

HTML

<script src="{% static 'js/rj_config.js' %}"></script>
<script data-main="project" src="{% static 'vendor/requirejs/require.js' %}"></script>

我仍然在Uncaught TypeError: Cannot read property 'ajaxSetup' of undefined

中收到错误project.js

1 个答案:

答案 0 :(得分:0)

遇到了一个间接暗示我应该使用requirejs代替require的答案的答案,因为我已经在rj_config.js中定义了require

因此,在更改为requirejs并进行UPDATE后:有时会工作:

"use strict";

requirejs(['jquery', 'bootstrap'], function($, bootstrap) {
    // sets up the csrf on ajax calls
    $.ajaxSetup({
        beforeSend: function(xhr, settings) {
            var csrftoken = $('meta[name="csrf-token"]').attr('content');
            xhr.setRequestHeader("X-CSRFToken", csrftoken);
        }
    });
});