无法将form2js文件链接到带有require.js的项目

时间:2015-06-17 19:40:50

标签: javascript requirejs referenceerror form2js.js

我想使用form2js将表单的信息转换为json到post。问题是,我使用的框架使用require.js,似乎我没有正确地将form2js文件与requirejs配置相关联。我正在接受

  

未捕获的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>

非常感谢对正确资源的任何指导!

1 个答案:

答案 0 :(得分:0)

在require.config中包含form2js只是告诉它在哪里找到form2js模块(以及其他信息,比如它的依赖项等)。

要实际加载form2.js(并因此定义form2js全局),您必须将其列为您正在使用它的模块中的依赖项。

例如假设你的initialize()函数使用它,你的最后一个语句将是

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

注意 - 如果app / app.js使用form2js,则必须将其包含在该模块的define中。您可能还想检查(在浏览器开发人员工具网络选项卡中是否实际加载了form2.js,一旦将其列为某个依赖项)