2016-05-27 14 views
0

私はウェブアプリケーションとして公開したスクリプトを持っています。私はWebアプリケーションを実行するために使用されたURLに基​​づいてデフォルト設定を変更したいと思っていました。私はすでに2つのフォームのうちの1つを開いていますが、1つのフォームでは、2番目に渡されたパラメータに基づいてラジオボタンを選択したいと考えています。 GoogleのHTMLサービスでGoogle ScriptテンプレートのHTMLServiceに変数を渡す

function doGet(passed) { 

    switch(passed.parameter.form) { 
    case 'single': 
     var result = HtmlService.createTemplateFromFile('Single').evaluate(); 
     result.setHeight(550); 
     result.setWidth(565); 
     break; 
    case 'grid': 
    default: 
     var result=HtmlService.createTemplateFromFile('GridView').evaluate(); 
     result.setHeight(550); 
     result.setWidth(1285); 
     } 

    return result; 
    } 

::私は、サーバー側GSファイルではtemplate宣言HTMLページ私が欲しいもののようですが、私はそれが仕事を得ることができない部分Pushing variables to templatesがあります。私が持っている私のSingle.htmlファイル内

 <body> 
     <? if (data === "Ex") { ?> Existing <? } else { ?> New <? } ?>  
     ... </body> 

上記のhtml部分が過度に単純化され、作業にこれを取得すると、入力エリアがはるかに大きいページである、私の端に私を得るだろう、など。

結果のページに表示する「既存」を取得しようとする試みで、私はに上記のコードを変更しました:

function doGet(passed) { 

    switch(passed.parameter.form) { 
    case 'single': 
     var result = HtmlService.createTemplateFromFile('Single'); 
     result.setHeight(550); 
     result.setWidth(565); 
     result.data = 'Ex'; 
     return result.evaluate().setSandboxMode(HtmlService.SandboxMode.IFRAME); 
     break; 
    case 'grid': 
    default: 
     var result=HtmlService.createTemplateFromFile('GridView').evaluate(); 
     result.setHeight(550); 
     result.setWidth(1285); 

     return result; 
     } 

    } 

とエラー

01を得ます

TypeError: Cannot find function setHeight in object HtmlTemplate. (line 131, file "Code")

setHeightとsetWidthを削除しても、前述の参照ページに示されているデータが得られたとしても、エラーが発生します。

誰かがこのようなページに変数を渡したことはありますか?

答えて

1

メソッド呼び出しの順序が間違っているようです。 result.data = 'Ex';.evaluate()の前にある必要がありますが、後で.setHeight().setWidth()を適用する必要があります。最後の例を少し変更してください:

case 'single': 
     var result = HtmlService.createTemplateFromFile('Single'); 
     result.data = 'Ex'; 

     return result.evaluate() 
        .setHeight(550) 
        .setWidth(565) 
        .setSandboxMode(HtmlService.SandboxMode.IFRAME); 
     break; 

HTMLファイルのif文の後に、基本的なエラーが欠落していたことを追跡しました。コードは次のようになります。

<? if (data === "Ex") { ?> Existing <? } else { ?> New <? } ?> 
+0

パーフェクト!ありがとうございました。そして、私のHTMLの中に}を追加した後(正しい構文を反映するためにサンプルを編集しました)、これはうまくいきます!どうもありがとう! –

+0

私の喜び!あなたは私がそれを見落としたのと同じように飛び込んだ。 – DiceGolem

関連する問題