我不理解這個輸出,因為正如預期的那樣,row
引數被傳遞給doGet
. 為什么read
函式只
html:
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
<h1>iterator</h1>
<form action="<?= url ?>" method="GET">
note <input type="text" name="update" />
<br>
row <input type="text" name="row" />
<input type="submit" name="Submit" /><br> <br> <br>
<span><?= params ?></span> <br> <br> <br>
<span><?= update ?></span> <br> <br>
<span><?= row ?></span> <br> <br> <br> <br>
<span><?= values ?></span> <br>
</form>
</body>
</html>
內容Code.js
:
const sheetID = "1DalaGJ3rGHmagpUqq3aOXSKRkyZQapfw-bCNTW5lgBE";
const sheetName = "data";
function doGet(e) {
var row = 3;
var params = JSON.stringify(e);
var htmlOutput = HtmlService.createTemplateFromFile('index');
htmlOutput.params = params;
htmlOutput.update = 'updated value is: ' e.parameter['update'];
htmlOutput.row = 'row is: ' e.parameter['row'];
htmlOutput.values = read(row);
htmlOutput.url = getUrl();
return htmlOutput.evaluate();
}
function read(row) {
var sheet = SpreadsheetApp.openById(sheetID);
var data = sheet.getSheetByName(sheetName);
var range = data.getRange(row,1,1,3);
var values = range.getValues();
Logger.log(values);
return values;
}
function getUrl() {
var url = ScriptApp.getService().getUrl();
return url;
}
日志顯示以下資料:
Oct 10, 2022, 8:11:43 PM
Info
[[A3, B3, C3]]
而我希望看到 A1、B1、C1 包含在電子表格中。為什么row
停留在初始值?奇怪的是,HTML 的輸出表明該變數是mutable。
這是針對CRUD
電子表格上的操作。在這里,尋找讀取用戶指定的行。
我試過更改變數名,這似乎不是范圍問題。
uj5u.com熱心網友回復:
read
僅回傳第 3 行,因為該變數row
已在此行中宣告var row = 3;
。在這一行和呼叫之間read(row)
沒有改變分配給row
變數的值。
如果您在閱讀代碼時遇到困難,請避免重復使用相同的字符序列,例如row
命名多個元素,在這種情況下:
- 服務器端變數
- HtmlTemplate 屬性
- 模板 HTML 變數(在 scriptlet 中使用)
- 網址引數,
除了 HtmlTemplate 屬性和 Template HTML 變數之外,它們應該使用相同的序列,而是為它們中的每一個使用唯一的序列。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/513619.html