将jquery-ui加载为requirejs模块

时间:2013-01-20 08:31:08

标签: jquery jquery-ui requirejs

我正在使用require-jquery.js,我正在尝试添加jquery-ui

如果我在我的主页上使用这个定义,我会正确地得到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'

我做错了什么?

1 个答案:

答案 0 :(得分:0)

尝试将配置对象放在单独的require.config调用中:

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

另见this page on RequireJS configuration.