2016-03-08 98 views
2

這是插件 https://github.com/jamesfoster/knockout.observableDictionary如何使用shim在requirejs中加載knockout.observableDictionary插件?

下面是該問題的一個小提琴我遇到:

https://jsfiddle.net/L4d84nqc/1/

代碼:

requirejs.config({ 
    paths: { 
    'ko': 'https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.0/knockout-min', 
    'ko.observableDictionary' : 'https://rawgithub.com/jamesfoster/knockout.observableDictionary/master/ko.observableDictionary' 
    }, 
    shim: { 
    'ko.observableDictionary' : { 
     deps: ['ko'] 
    } 
    } 
}); 


require(['ko', 'ko.observableDictionary'], function(ko) { 
    console.log(ko); 
}); 

回答

2

我不認爲有一種方式來增加通過需求註冊的屬性(可能是錯誤的?)。我只是簡單地將.js文件添加到軟件包或頁面中,然後修改庫js ...

require(["ko"], function(ko){  
    (function (ko) { 
     function DictionaryItem(key, value, dictionary) { 
     .............. all that yummy code 
     } 
    })(ko)  
}); 
+0

對不起,我對requirejs沒有超級經驗。捆綁與這有什麼關係?我認爲捆綁是爲了從一個文件返回多個模塊。 如果這是不可能的,jQuery插件如何工作?僅僅因爲jQuery支持AMD? – Kir

+0

這可能是可能的。這是我爲你獲得的最佳答案。捆綁只是我提到的情況下,你如何加載頁面加載JavaScript – QBM5