2017-06-13 5 views
2

Swift Vapor Appの中に複雑なHTMLテーブルを作成する必要があります。Swift Vapor Leafはhtmlを変数に渡します

問題は次のとおりです。リーフは、#(SOMEVAR + = 1)のような変数をカウントアップも#(somevar1 + somevar2)のような文字列変数を連結するサポートしていないよう

だから私は内部の私の複雑な表を作成することを決めましたAppを開き、変数内のhtmlテンプレートに転送します。私は

#(table) 

のような変数を呼びたいテンプレートで

(PHPで私はこのすべての時間を行うために使用しています)しかし、私は葉のエスケープとしてプレーンなHTMLコードを取得してい判明しますすべての変数。

しかし、プレーンhtmlをそのまま出力する#raw()関数があります。

だから私は、唯一の#rawは()の変数を探しますが、単に{}の間にあるものをエスケーププリントアウトしていないことを見つけるために

<!DOCTYPE html> 
<html lang="de"> 
<head><title>Server</title></head> 
<body> 
<..> 

<form action="parameters" method="post"> 

// here is the thing: leaf gets a html table within the string 'table'. 
// If I do it like that lead doesn't recognize #(table) as a leaf variable. 
#raw(#(table)) 

<button type="submit">Save</button> 
</form> 


</body> 
</html> 

を行います。だから私はまだ私の複雑なHTMLテーブルの代わりにウェブサイト "#(テーブル)"に入っています。

だから私は立ち往生しています。 Appで生成されたhtmlコードをhtmlとしてテンプレートに取り込むにはどうすればよいですか?

おそらく私はこれをすべて間違っています。リーフテンプレートの中でhtmlコードを取得するにはどうすればよいですか?または、私はヘッダーを持つhttpストリームとして、自分自身全体のページを送信する必要がありますか?あなたは、このテーブルを作成するために、ユーザの入力に取っていない、あなたがこれを使用することができるはずと仮定すると、事前に

おかげで、 トム

+0

私の質問をより明確に指摘しようとしています... – incredion

答えて

2

#raw(table) 

これは#(table)と同じことを行い、 HTMLをエスケープしないので、適切にレンダリングされます。これを行うと、XSS攻撃に対して脆弱にならないようにしてください。

+1

私は{}なしで#raw(テーブル)を使用しなければなりませんでした。 {}を含めると、結果は空白になります(リーフ2.0.1)。 –

関連する問題