Я создал пример repo , чтобы показать некоторую ошибку, с которой я столкнулся при загрузке материализации в конвейер ресурсов апострофов. Это апострофный шаблон как минимальный пример с materialize.css и .js в публичной папке ресурсов.
Я получаю следующую ошибку при открытии модальных изображений, файлов или страниц в интерфейсе администратора. Пользователи или глобальные пользователи не выдают эту ошибку:
TypeError: this.dropdownEl is null materialize.js:2571:9
_makeDropdownFocusable http://localhost:3000/modules/my-apostrophe-assets/js/materialize.js:2571
Dropdown http://localhost:3000/modules/my-apostrophe-assets/js/materialize.js:2299
init http://localhost:3000/modules/my-apostrophe-assets/js/materialize.js:1045
init http://localhost:3000/modules/my-apostrophe-assets/js/materialize.js:2825
_setupDropdown http://localhost:3000/modules/my-apostrophe-assets/js/materialize.js:6561
Autocomplete http://localhost:3000/modules/my-apostrophe-assets/js/materialize.js:6478
init http://localhost:3000/modules/my-apostrophe-assets/js/materialize.js:1049
init http://localhost:3000/modules/my-apostrophe-assets/js/materialize.js:6878
pluginName http://localhost:3000/modules/my-apostrophe-assets/js/materialize.js:1153
selective jQuery
enableTags http://localhost:3000/modules/apostrophe-schemas/js/user.js:515
populate http://localhost:3000/modules/apostrophe-schemas/js/user.js:1160
populate http://localhost:3000/modules/apostrophe-schemas/js/user.js:42
_withoutIndex http://localhost:3000/modules/apostrophe-assets/js/vendor/async.js:181
iterate http://localhost:3000/modules/apostrophe-assets/js/vendor/async.js:262
iterate http://localhost:3000/modules/apostrophe-assets/js/vendor/async.js:274
only_once http://localhost:3000/modules/apostrophe-assets/js/vendor/async.js:44
partiallyApplied http://localhost:3000/modules/apostrophe-assets/js/vendor/setImmediate.js:27
runIfPresent http://localhost:3000/modules/apostrophe-assets/js/vendor/setImmediate.js:46
onGlobalMessage http://localhost:3000/modules/apostrophe-assets/js/vendor/setImmediate.js:92
Я думаю, что это вызвано следующей функцией в materialize.js:
/**
* Initialize jQuery wrapper for plugin
* @param {Class} plugin javascript class
* @param {string} pluginName jQuery plugin name
* @param {string} classRef Class reference name
*/
M.initializeJqueryWrapper = function (plugin, pluginName, classRef) {
jQuery.fn[pluginName] = function (methodOrOptions) {
// Call plugin method if valid method name is passed in
if (plugin.prototype[methodOrOptions]) {
var params = Array.prototype.slice.call(arguments, 1);
// Getter methods
if (methodOrOptions.slice(0, 3) === 'get') {
var instance = this.first()[0][classRef];
return instance[methodOrOptions].apply(instance, params);
}
// Void methods
return this.each(function () {
var instance = this[classRef];
instance[methodOrOptions].apply(instance, params);
});
// Initialize plugin if options or no argument is passed in
} else if (typeof methodOrOptions === 'object' || !methodOrOptions) {
plugin.init(this, arguments[0]);
return this;
}
// Return error if an unrecognized method name is passed in
jQuery.error("Method " + methodOrOptions + " does not exist on jQuery." + pluginName);
};
};
Я был бы очень рад, если бы кто-нибудь посмотрел, как эта ошибка разрешима. THX