2013-03-06 117 views
2

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

回答

0

出口活動在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

-1

更改名稱,從淘汰賽KO。