2012-11-26 31 views
0

一個簡單的應用程序:服務器處理事件信息的參數谷歌的Apps腳本

function doGet() { 
    return(test()); 
} 

function test(){ 
    var smiley = UiApp.createApplication().setTitle("TT Bomgar Feedback"); 
    var textIn = smiley.createTextBox().setName("text"); 
    var textOut = smiley.createLabel().setId("label").setVisible(false); 
    var button = smiley.createSubmitButton("Submit"); 
    var handler = smiley.createServerHandler("handler"); 
    button.addClickHandler(handler); 
    smiley.add(button); 
    smiley.add(textIn); 
    smiley.add(textOut); 
    return(smiley); 
} 

function handler(e){ 
    app = UiApp.getActiveApplication(); 
    var text = e.parameter.text; 
    app.getElementById("label").setVisible(true).setText(text); 
    return(app); 
} 

在處理函數,var text總是undefined。這意味着下面的返回:

enter image description here

所以,不確定的是印刷的,而不是「一些文本」。

我不明白爲什麼,但因爲我已正確設置的測試功能的文本框元素的名稱...

任何幫助是極大的讚賞。

回答

3

你需要一個callBackElemnt添加到處理程序,以便它的價值將得到傳遞給處理函數。在通常的做法中,我們只是添加包含所有其他元素的最頂層元素。但是你也可以添加你想傳遞的所有元素。

修改腳本

var handler = smiley.createServerHandler("handler"); 
handler.addCallbackElement(textIn); 
button.addClickHandler(handler); 
+0

感謝。正在發送到服務器並打印到屏幕上的值現在是Generic。任何想法會導致這種情況,以及我如何避免這個問題?謝謝 – Sherlock

+0

嘗試打印Utilities.jsonStringify(e.parameter)並檢查您是否獲得所需的參數。 –

+0

問題已解決,感謝提示 – Sherlock