无法加载与requirejs

问题描述:

JavaScript库,我不断收到以下错误,无论超时设置:无法加载与requirejs

Uncaught ReferenceError: ko is not defined knockout.activity.js:381 Uncaught Error: Load timeout for modules: 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) { 
+0

你有没有尝试过baseUrl?我相信你还需要在视图函数中为'activity'提供一个'parameter'参数,而不是100%确定 – alexdmejias 2013-03-06 22:14:28

出口活动在jQuery .fn.activity。

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

看一看这样的:在你的需要

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

function ($, ko) { 

劫根命名空间而不是“基因敲除” http://requirejs.org/docs/api.html#config-shim

+0

so,exports:“jQuery.fn.activity”? – 2013-03-06 22:38:02

+0

是的。这应该工作。 – 2013-03-06 22:42:22

+0

我试过了,但是ko仍然没有定义 – 2013-03-06 22:46:42

更改名称,从淘汰赛KO。