0

我想使用form2js将表单的信息转换为 json 来发布。问题是,我正在使用的框架使用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>

任何有关正确资源的指导将不胜感激!

4

1 回答 1

0

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

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

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

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

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

于 2015-06-18T07:26:29.960 回答