javascript - 无法使用 RequireJS 加载 Bootstrap

标签 javascript twitter-bootstrap requirejs

我似乎不知道如何通过 RequireJS 加载 Bootstrap。我发现的例子都不适合我。

这是我的垫片:

require.config({
  // Sets the js folder as the base directory for all future relative paths
  baseUrl: "./js",
  urlArgs: "bust=" +  (new Date()).getTime(),
  waitSeconds: 200,
  // 3rd party script alias names (Easier to type "jquery" than "libss/jquery, etc")
  // probably a good idea to keep version numbers in the file names for updates checking
  paths: {

      // Core libsraries
      // --------------
      "jquery": "libs/jquery",
      "underscore": "libs/lodash",
      "backbone": "libs/backbone",
      "marionette": "libs/backbone.marionette",

      // Plugins
      // -------
      "bootstrap": "libs/plugins/bootstrap",
      "text": "libs/plugins/text",
      "responsiveSlides": "libs/plugins/responsiveslides.min",
      'googlemaps': 'https://maps.googleapis.com/maps/api/js?key=AIzaSyDdqRFLz6trV6FkyjTuEm2k-Q2-MjZOByM&sensor=false',


      // Application Folders
      // -------------------
      "collections": "app/collections",
      "models": "app/models",
      "routers": "app/routers",
      "templates": "app/templates",
      "views": "app/views",
      "layouts": "app/layouts",
      "configs": "app/config"

  },

  // Sets the configuration for your third party scripts that are not AMD compatible
  shim: {

      "responsiveSlides": ["jquery"],
      "bootstrap": ["jquery"],
      "backbone": {

        // Depends on underscore/lodash and jQuery
        "deps": ["underscore", "jquery"],

        // Exports the global window.Backbone object
        "exports": "Backbone"

      },
      "marionette": {
        // Depends on underscore/lodash and jQuery
        "deps": ["backbone", "underscore", "jquery"],
        // Exports the global window.Backbone object
        "exports": "Marionette"
      },
      'googlemaps': { 'exports': 'GoogleMaps' },
      // Backbone.validateAll plugin that depends on Backbone
      "backbone.validate": ["backbone"]

  },
  enforceDefine: true

});

这是我如何调用 Bootstrap:

define([
        "jquery",
        "underscore",
        "backbone",
        "marionette",

        "collections/Navigations",
        'bootstrap',
        ],
function($, _, Backbone, Marionette, Navigations, Bootstrap){

我得到的错误是这样的:

Uncaught Error: No define call for bootstrap

关于如何解决这个问题有什么想法吗?

最佳答案

我在这里找到了一个工作示例:

https://github.com/sudo-cm/requirejs-bootstrap-demo

我按照它让我的代码正常工作。

根据该演示,尤其是app.js ,您只需制作一个填充程序来捕获 Bootstrap 对 jQuery 的依赖,

requirejs.config({
    // pathsオプションの設定。"module/name": "path"を指定します。拡張子(.js)は指定しません。
    paths: {
        "jquery": "lib/jquery-1.8.3.min",
        "jquery.bootstrap": "lib/bootstrap.min"
    },
    // shimオプションの設定。モジュール間の依存関係を定義します。
    shim: {
        "jquery.bootstrap": {
            // jQueryに依存するのでpathsで設定した"module/name"を指定します。
            deps: ["jquery"]
        }
    }
});

然后将 Bootstrap 标记为应用本身的依赖项,以便它在 app.js 之前加载。

// require(["module/name", ...], function(params){ ... });
require(["jquery", "jquery.bootstrap"], function ($) {
    $('#myModalButton').show();
});

最后,由于 app.js 是 data-main,

<script type="text/javascript" src="./assets/js/require.min.js" data-main="./assets/js/app.js"></script>

Bootstrap 的 JS 保证在任何应用程序代码之前加载。

关于javascript - 无法使用 RequireJS 加载 Bootstrap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16259098/

相关文章:

javascript - 使用 Javascript 的边框半径

javascript - JQuery选择器检查已选中的复选框数量

html - Bootstrap : Center a header within a div

javascript - 视频在 Firefox 上弹出的 Bootstrap 模式中不起作用

javascript - 将 jsPDF 与 Backbonejs 结合使用

playframework - Play Framework 2 & requirejs - 在 dist 构建中不尊重路径

javascript - 如何将一个 div 定位为 HTML5 视频播放器底部的一个 block ?

javascript - 带 Bootstrap 的图片库,图片更大

javascript - Angular + Requirejs - 如何返回多个模块?

javascript - 在react中有条件地定义一个const