Проблема с привязкой файла form2js к проекту с помощью require.js

Я хочу использовать form2js для преобразования информации формы в json для публикации. Проблема в том, что используемый мной фреймворк использует require.js, и кажется, что я не связываю файл form2js с requirejs настроить правильно. я получаю

Uncaught ReferenceError: form2js не определен

ошибка.

form2js — это функция в файле form2js.js.

Вот файл конфигурации:

 require.config({
  baseUrl: "assets/js/lib/"
  , shim: {
    'backbone': {
      deps: ['underscore', 'jquery'],
      exports: 'Backbone'
    },
    'underscore': {
      exports: '_'
    },
    'bootstrap': {
      deps: ['jquery'],
      exports: '$.fn.popover'
    },
    'form2js': {
      exports: 'form2js'
    }
  }
  , paths: {
    app         : ".."
    , collections : "../collections"
    , data        : "../data"
    , models      : "../models"
    , helper      : "../helper"
    , templates   : "../templates"
    , views       : "../views"
  }
});
require([ 'app/app'], function(app){
  app.initialize();
});

И на главной html-странице я запускаю это:

<script data-main="assets/js/main.js" src="assets/js/lib/require.js" ></script>

Любое руководство к правильным ресурсам будет очень признательно!


person user3908525    schedule 17.06.2015    source источник


Ответы (1)


Включение form2js в require.config просто сообщает, где найти модуль form2js (и другую информацию, например, его зависимости и т. д.).

Чтобы фактически загрузить form2.js, который у вас есть (и, следовательно, определить глобальный form2js), вы должны указать его как зависимость в модуле, где вы его используете.

Например, если ваша функция initialize() использует ее, ваш последний оператор будет

require([ 'app/app', 'form2js' ], function(app){
  app.initialize();
});

Примечание. Если app/app.js использует form2js, вы должны включить его в определение для этого модуля. Вы также можете проверить (на вкладке сети инструментов разработчика браузера, действительно ли был загружен form2.js, как только вы где-то укажете его как зависимость)

person potatopeelings    schedule 18.06.2015