2012-07-30 77 views
3

我正在開發Google Apps腳本,並希望將URL參數拉入HTML文件中。例如,如果用戶轉到my_domain.com/?hello=test,則HTML輸出應該是「Hello test」。這是我的代碼。Google Apps腳本 - 將數據拉入具有參數的模板

的index.html

<html> 
    <body><p>Hello <?= data ?></p></body> 
</html> 

myCode.gs

function doGet(e) { 
    var t = HtmlService.createHtmlOutputFromFile('index'); 
    t.data = e.parameter.hello; 
    return t.evaluate(); 
} 

這將導致一個錯誤消息: 「VOUS NE pouvez PAS ajouter NI改性劑德propriétés傾CET客體」。 (您不能添加或修改此對象的屬性。)

我不知道爲什麼。我按照這個文檔https://developers.google.com/apps-script/html_service他們說:

爲模板來訪問數據的第三種方式是直接的變量在腳本文件添加到模板,如下面的例子。

function doGet() { 
    var t = HtmlService.createTemplateFromFile('myTemplate'); 
    t.data = SpreadsheetApp.openById('SPREADSHEET_KEY_GOES_HERE').getRangeByName('dataRange').getValues(); 
    return t.evaluate(); 
} 

回答

7

您的代碼:

變種T = HtmlService.create HtmlOutput FROMFILE( '索引');

示例您專利:

變種T = HtmlService.create 模板 FROMFILE( '索引');

HtmlOutput不能將變量添加到它,就像您嘗試。模板可以 - 評估它的結果是一個HtmlOutput。

+0

Ouf!非常感謝你! :) – tsil 2012-07-30 12:39:58

+0

我怎樣才能像我們這樣做一個標題:HtmlService.createHtmlOutputFromFile.setTitle(「Title Here」); – drmartin 2017-02-28 02:38:40

+0

var t = HtmlService.createTemplateFromFile('index')。evaluate()。setTitle(「your title」) – 2017-03-02 02:38:45