2013-09-10 6 views
0

Я новичок в require.js.
У меня есть следующая проблема. Я связала require.js:Невозможно использовать requirejs

<script data-main="/Scripts/page/main" src="/Scripts/framework/require.js"></script> 

код main.js

require.config(
{ 
    shim: { 
     backbone: { 
      exports: 'backbone' 
     } 
    },paths: { 
    jquery: "/Scripts/framework/jquery/jquery-1.6.4", 
    underscore: "/Scripts/framework/underscore/underscore", 
    backbone: "/Scripts/framework/backbone/backbone" 
} 
}); 
require(["jquery"], function (jquery) { 
// why jquery is undefined? 
}) 

enter image description here

Я пытался использовать его как в руководстве, но, к сожалению, это не работает. Зачем требовать функцию jquery variable undefined? Спасибо за любую помощь.

ответ

1

Проблема в том, что ваш baseUrl, где requireJs будет загружать скрипт, указан в атрибуте data-main. Из документов:

Если нет BaseUrl явно не установлен в конфигурации по умолчанию значение будет место HTML-страницы, загружает require.js. Если используется атрибут data-main, этот путь станет базойUrl.

В соответствии с этим, ваши пути должны выглядеть следующим образом:

require.config({ 
    shim: { 
    backbone: { 
     exports: 'backbone' 
    } 
    }, 
    paths: { 
    jquery: "../Scripts/framework/jquery/jquery-1.6.4", 
    underscore: "../Scripts/framework/underscore/underscore", 
    backbone: "../Scripts/framework/backbone/backbone" 
    } 

Вы также можете установить baseUrl в корень вашего проекта, как это:

require.config({ 
    baseUrl: "./", 
    shim: { 
    backbone: { 
     exports: 'backbone' 
    } 
    }, 
    paths: { 
    jquery: "Scripts/framework/jquery/jquery-1.6.4", 
    underscore: "Scripts/framework/underscore/underscore", 
    backbone: "Scripts/framework/backbone/backbone" 
    } 
+0

Спасибо за ваш ответ, я попытался использовать все ваши варианты - без везения. Все необходимые файлы были загружены, но в переменной jquery функции все еще не определено. Где я ошибаюсь? –

+0

http://imageupload.co.uk/viewer.php?file=bdp8gez066ta2t4ivt61.jpg –

0

Я просто побежал через ту же проблему.

Im также новое в нем, но я нашел хорошее решение объясняется здесь Loading Backbone and Underscore using RequireJS

В основном это продлить подкладку на:

requirejs.config({ 

    baseUrl: 'js/lib', 

    shim: { 
     underscore: { 
      exports: '_' 
     }, 
     backbone: { 
      deps: ['underscore', 'jquery'], 
      exports: 'backbone' 
     } 
    }, 

    paths: { 
     app: '../app', 
     jquery: 'jquery-1.10.2.min', 
     backbone: 'backbone.min', 
     underscore: 'underscore.min' 
    } 
}); 

requirejs(['jquery', 'underscore', 'backbone'], function($, _, Backbone) { 
    console.log('here'); 
}); 

КАЖЕТСЯ подчеркивания _ и позвоночник в зависимости от того как JQuery и подчеркнуть причину этого.

Это работает для меня и имеет смысл.

Пожалуйста, исправьте меня. Если это не так.

Смежные вопросы