无法使用requirejs加载javascript库

时间:2013-03-06 22:00:37

标签: javascript requirejs

无论超时设置如何,我都会收到以下错误:

  

未捕获的ReferenceError:ko未定义knockout.activity.js:381   未捕获错误:加载模块的超时:knockout   http://requirejs.org/docs/errors.html#timeout

var require = {
    baseUrl: "/app1/script",

    paths: {
        jquery: "lib/jquery/jquery-1.8.3",
        knockout: "lib/knockout/knockout-2.2.0",
        activity: "lib/knockout/knockout.activity"
    },

    shim: {
        "activity": {
            deps: [
                "jquery",
                "knockout"
            ],
            exports: "ko"
        } 
    }
};

在我的视图模型中:

define([
    "jquery",
    "knockout",
    "activity",
],

function ($, ko) {

2 个答案:

答案 0 :(得分:0)

将活动导出为jQuery.fn.activity。

如果你查看knockout.activity.js的源代码,它期望将ko定义为KnockoutJS对象。但是你通过将knockout.activity.js定义为ko来打破这一点。

看看这个:http://requirejs.org/docs/api.html#config-shim

答案 1 :(得分:-1)

在您的要求

中将名称从淘汰赛改为ko
define([
    "jquery",
    "ko",
    "activity",
],

function ($, ko) {

ko是root命名空间而不是“knockout”。