RequireJS - Выполнить функцию на модуле после его загрузки [дублировать]

, если у вас есть dataframe, а не векторы:

lst[which.max(sapply(lst,nrow))]

data

lst <- list(df1, df2, df3)
2
задан June 20 June 2015 в 04:21
поделиться

1 ответ

Глядя на аннотированный источник , я вижу, что Backbone вызывает define, когда он обнаруживает, что он работает с загрузчиком AMD. Использование shim с модулем, вызывающим define, приводит к неопределенному поведению, потому что shim предназначен для модулей, которые не вызывают define .

Вы можете достичь того, чего хотите, с поддельным модулем backbone, подобным этому, который вы сохранили бы в файле с именем backbone-glue.js:

define(['backbone'], function (Backbone) {
    var originalSync = Backbone.sync;
    Backbone.sync = function(method, model, options) {
        options.beforeSend = function(xhr) {
            xhr.setRequestHeader('X-CSRFToken', window.csrf_token);
        }
        return originalSync(method, model, options);
    };

    return Backbone;
});

И тогда вы должны иметь такая карта в вашей конфигурации для RequireJS:

map: {
     '*': {
          backbone: 'backbone-glue'
     },
     'backbone-glue': {
          backbone: 'backbone'
     }
}

Что это значит, что везде (*), когда требуется модуль backbone, RequireJS загружает backbone-glue. Однако в backbone-glue, когда требуется backbone, загружается backbone. Это позволяет backbone-glue загружать оригинальную магистраль.

6
ответ дан Louis 28 August 2018 в 09:55
поделиться