Я надеюсь, что все в безопасности и здоровы, учитывая текущую ситуацию.
У меня есть вопрос по поводу проекта со скриптом Google Apps. У меня есть веб-приложение, и я смог выяснить маршрутизацию с помощью doGet (), используя ссылки и т. Д. c.
//global variables
const sheetId = "foo";
const Route = {};
Route.path = function(route, callback){
Route[route] = callback;
}
function doGet(e){
Route.path("newAccountForm",loadNewForm);
Route.path("updateBrandForm", loadUpdateForm);
if(Route[e.parameters.v]) {
return Route[e.parameters.v]();
} else {
return render("home")
}
};
function loadNewForm() {
const sheetActive = SpreadsheetApp.openById(sheetId);
const mySheet = sheetActive.getSheetByName("Sheet1");
const title = "title";
const index = "index";
return render("addNewAccount",{title: title, index: index});
}
function loadUpdateForm () {
const sheetActive = SpreadsheetApp.openById(sheetId);
const mySheet = sheetActive.getSheetByName("Sheet1");
return render("updateBrand");
}
function render(file,argsObject) {
const tmp = HtmlService.createTemplateFromFile(file);
if(argsObject) {
const keys = Object.keys(argsObject);
keys.forEach(function(key){
tmp[key] = argsObject[key];
})
} // END IF
return tmp.evaluate();
}
Ссылки ..
<a href="<?= ScriptApp.getService().getUrl(); ?>?v=newAccountForm">Add New Brand</a>
<a href="<?= ScriptApp.getService().getUrl(); ?>?v=updateBrandForm">Update Exisiting Brand</a>
<a href="<?= ScriptApp.getService().getUrl(); ?>?v=reports">Analytics / Reports</a>
Теперь я немного застрял в обработке ответов и ошибок. Я попытался с помощью doPost (), который работает для рендеринга новой HTML страницы. Моя проблема в том, что я не уверен, как определить, был ли запрос успешным в doPost. Есть ли способ проверить это? Я могу получить все параметры через объект события, но не через состояние.
<form id="myForm" onsubmit="handleNewAccountFormSubmit(this);" method="post" action="<?= ScriptApp.getService().getUrl(); ?>">
Я также пытался обработать его с помощью включенного .withFailureHandler (), но не уверен, как его запустить или если можно вызвать функцию из моего .GS. Я также пытался использовать функцию onFail () вне функции FormSubmit.
function handleNewAccountFormSubmit(formObject) {
google.script.run.withFailureHandler(onFail).withSuccessHandler().processNewAccountForm(formObject);
function onFail(error) {
Logger.log(error)
console.log(error)
return google.script.run.onError();
}
}
Я в основном хочу показать, была ли функция успешно запущена для удобства пользователя, но я не уверен в наилучшей практике или как или даже если это возможно (я уверен, что это так!)
Я с нетерпением жду любых идей, исправлений, и если что-то неясно, я сделаю все возможное, чтобы предоставить больше информации.
Еще раз спасибо.