2016-05-30 29 views
-1

我正在嘗試使用需要js的引導程序。到目前爲止jquery,下劃線和boostrap加載正常,但我有一個庫不加載的問題:bootstrap-tagsinput。我如何調試requirejs並查看這個庫是否加載?帶有requirejs的引導庫

這裏是我的common.js

requirejs.config({ 
     shim: { 
      'jquery': { 
       exports: '$' 
      }, 
      'underscore': { 
       exports: '_' 
      }, 
      'bootstrap': { 
       deps: [ "jquery" ] 
      }, 
      'bootstrap-tagsinput': { 
       deps: [ "bootstrap" ] 
      } 
     }, 
     baseUrl: "/", 
     paths: { 
      'jquery': [ 
       '//ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min', 
       'jquery/jquery.min' 
      ], 
      'underscore': [ 
       '//underscorejs.org/underscore-min', 
       'underscore/underscore-min' 
      ], 
      'bootstrap': [ 
       '//maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min', 
       'bootstrap/dist/js/bootstrap.min' 
      ], 
      'bootstrap-tagsinput': 'bootstrap-tagsinput/dist/bootstrap-tagsinput.min' 
     } 
    }); 

回答

-1

我想通了,「引導-tagsinput」需要它被用在被定義。例如,在一個網頁,利用這個庫:

define(['bootstrap-tagsinput'], function() { 
    // js for the page here 
}); 

而且爲了自動加載模塊應該始終可用(如引導或jQuery的),我們可以這樣做。

define(['bootstrap'], function() { 
    // main.js contents 
}); 
0

Require.js被髮明瞭處理模塊之間的依賴關係,讓你在你喜歡的地方,你在你自己的答案說已經在使用它的模塊指定這些依賴關係是很清楚的。作爲define()的第二個參數給出的函數按照它們給出的順序獲取這些模塊的句柄。

由於$通常用於jQuery庫,所以將$用於別的東西不是一個好主意,因爲這會造成很多混淆。但通常你需要jQuery的一個模塊中一樣,所以你define()的通話將最有可能看起來像

define['jquery', 'bootstrap-tagsinput'], function($) { 
    ... 
}); 

在這種情況下$勢必jQuery的,不引導,tagsinput。它是通過jQuery機制調用的,所以你不需要函數中的第二個參數。