2013-01-20 63 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