На основе приведенного ниже кода у меня есть переменная mdcDialog
, которая инициализируется библиотекой material-components-web
(MDCDialog) после загрузки страницы.
При отправке формы событие по умолчанию предотвращается, и вместо этого ajaxSubmit()
обрабатывает форму.
Ответ является объектом json, из которого я могу найти переменную response.modal.modal
со строковым значением mdcDialog
.
Но по той или иной причине console.info(window[response.modal.modal]);
возвращает ноль вместо переменной mdcDialog
.
Как я могу получить доступ к моей переменной mdcDialog
из строкового ответа, если window
не работает?
app.js
/* --- VARS --- */
const page="#page";
let mdcDialog;
/* --- FUNCTIONS --- */
function ajaxSubmit(node) {
$.ajax({
type: node.attr("method"),
url: node.attr("action"),
enctype: "multipart/form-data",
data: new FormData(node[0]),
processData: false,
contentType: false,
cache: false
}).done(function(response, status, xhr) {
if(response !== false) {
/** @var response.modal */
if(typeof response.modal !== "undefined") {
/** @var response.modal.action */
/** @var response.modal.modal */
/** @var response.modal.content */
if(response.modal.action === "load") {
console.info(window[response.modal.modal]);
}
}
}
}).fail(function(request, status, error) {
console.error(request);
console.error(status);
console.error(error);
});
}
/* --- ACTIONS --- */
$(document).ready(function() {
mdcDialog=new mdc.dialog.MDCDialog(document.querySelector("#dialog-level.mdc-dialog"));
$(page).on("submit", ".ajs", function(e) {
e.preventDefault();
ajaxSubmit($(this));
})
});