2013-01-20 94 views
0

我使用的是require-jquery.js,我試圖將jquery-ui添加到組合中。將jquery-ui加載爲requirejs模塊

如果我在我的主網頁上使用這個定義,我得到的jQuery UI的正確:

// load main app 
     require({ paths: { 
      'jqueryui': 'cafe/lib/jqueryui', 
      'ca': 'cafe/ca', 
      'ko': 'cafe/lib/knockout/knockout', 
      'komap': 'cafe/lib/knockout/knockout.mapping', 
      'kopost': 'cafe/lib/knockout/knockout-postbox', 
      'jd': 'cafe/lib/jaydata-1.2.5/jaydata', 
      'jdKo': 'cafe/lib/jaydata-1.2.5/jaydatamodules/knockout', 
      'jdDeferred': 'cafe/lib/jaydata-1.2.5/jaydatamodules/deferred', 
     }, 
     waitSeconds: 60, 
     shim: { 
      'jd': { exports: '$data', deps: [ 'cafe/lib/jaydata-1.2.5/datajs-1.0.3' ] }, 
      'jdDeferred': { exports: '$data', deps: [ 'jd' ] }, 
     } 
    }, [ 'jquery', 'ko', 'cafe/log', 'sp/app','jqueryui' ], function($, ko, log, app) { 
     //this logs the ui object properly 
     console.log($.ui); 

    }); 

但是當我嘗試從另一個模塊是這樣調用它:

define(['jquery', 'ko','jqueryui'], function ($, ko) 

我得到一個錯誤來自require.js:Uncaught TypeError: Object 0 has no method 'match'

我在做什麼錯?

回答

0

試着將配置對象在一個單獨的require.config電話:

require.config({ 
    paths : { ... } 
}); 

參見this page on RequireJS configuration.

+0

試了一下,得到了相同的結果:( – Tomer

+0

嗯只注意到jQuery是沒有在任何地方定義。可能是這個問題嗎? – robertklep

+0

正如我在我的問題開始時提到的那樣,我使用了require-jquery.js,它已經包含了jquery作爲模塊。 – Tomer