簡體   English   中英

在AMD模塊中使用敲除es5插件

[英]using knockout es5 plugin in AMD module

我可以用基因敲除與requirejs應用AMD模塊, 這里的例子。 實際使用dojo工具箱。

// Main viewmodel class
define(['knockout-x.y.z'], function(ko) {
    return function appViewModel() {
        this.firstName = ko.observable('Bert');
    };
});

但是我怎么能使用基因敲除擴展名基因敲除-es5,這在AMD模塊中是行不通的。

沒錯,基因剔除-es5不是AMD兼容模塊。 但是,這不會阻止您將其與RequireJS一起正確使用。 您需要做的是在您的require config中使用一個墊片( http://requirejs.org/docs/api.html#config-shim )。 之所以需要這樣做,是因為您需要告訴要求該插件取決於Knockout,因此無法首先加載。

這是您的require config的外觀:

var require = {
    paths: {
        'ko': 'knockout.min',
        'koES5': 'knockout-es5.min',
    },
    shim: {
        'koES5': { deps: ['ko'] }
    }
};

這將創建2條路徑,一條路徑到Knockout,一條路徑到Knockout-es5。 在填充片中,我們告訴您要求剔除-es5取決於剔除。 這樣可以確保以正確的順序進行加載。

現在,您的RequireJS模塊應如下所示:

define(['ko', 'koES5'], function(ko) {
    return function appViewModel() {
        this.firstName = ko.observable('Bert');
    };
});

注意:從技術上講,您不需要ko作為要求,因為koES5已被要求加載,因為它已被標記為依賴項。 另外,您不需要koES5的變量,因為它不會返回您要使用的任何內容,您只是將其添加為確保文件被加載的要求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM