在Require.js中没有定义调用函数

时间:2014-01-25 02:36:46

标签: javascript jquery twitter-bootstrap backbone.js requirejs

我在主干项目中使用Require.js加载jquery-menu-aimbootstrap时出错。

以下是我在main.js中定义的内容:

requirejs.config({
    enforceDefine: true,
    paths: {
      //declare path jquery, backbone, underscore,and other library here....
      "jquery-menu-aim" : "libs/jquery/jquery.menu-aim",
      "bootstrap" : "libs/jquery/bootstrap.min"
    },
    shim: {
      "jquery-menu-aim" : {
        deps: ["jquery"] ,
        exports: "Jquerymenuaim"
       },
       "bootstrap" : {
        deps: ["jquery"] ,
        exports: "Bootstrap"
      }
   }
});

错误:未捕获错误:没有为jquery-menu-aim定义调用           http://requirejs.org/docs/errors.html#nodefine require.js:8           未捕获错误:没有定义调用bootstrap           http://requirejs.org/docs/errors.html#nodefine

当我在我的视图中定义它时。我想也许我在Shim配置中定义库时错了,但是我无法在google中找到它。

任何帮助将不胜感激。感谢。

1 个答案:

答案 0 :(得分:4)

Bootstrap的垫片肯定是错误的,因为Bootstrap没有定义名为Bootstrap的符号。这是我使用的:

bootstrap: {
  deps: ["jquery"],
  exports: "jQuery.fn.popover"
},

jQuery.fn.popover方法是Bootstrap定义的方法。如果在RequireJS加载Bootstrap后它不存在,则表明Bootstrap尚未加载。

你对jquery.menu-aim的垫片同样错了。看看the code,我看到它是一个jQuery插件。您应该更改您的垫片以检查它添加到jQuery的函数。 jQuery.fn.menuAim看起来像个好人。