2017-06-13 71 views
2

我需要在Swift Vapour App中創建一個複雜的html表格。Swift Vapor Leaf在變量中提供html

問題是:葉似乎不支持計數一樣#變量(somevar + = 1)和串聯字符串變量一樣#(somevar1 + somevar2)

所以我決定創建我裏面的複雜的表應用程序並將其傳輸到變量中的html模板。 (在PHP我已經習慣了做這一切的時候)

在模板我會打電話像

#(table) 

變量,但事實證明,我得到了普通的HTML代碼,葉逃脫所有變量。

但是有#raw()函數可以打印出純粹的html。

所以我做

<!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> 

才發現,#raw()不看變量,但只打印出轉義之間是什麼{}。所以我仍然在網站「#(表)」,而不是我複雜的HTML表。

所以現在我卡住了。如何將應用程序生成的html代碼作爲html加入模板中?

大概我這樣做是錯的。我如何在葉模板中獲取html代碼?或者,我必須發送整個頁面,然後我自己,作爲一個HTTP流與頭... ...?

由於提前, 湯姆

+0

編輯它試圖更清楚地指出我的問題... – incredion

回答

2

假設你不採取在用戶輸入創建該表,你應該能夠使用:

#raw(table) 

這做同樣的事情#(table),但它不會轉義HTML,所以它會正確渲染。如果你這樣做,只要確保你不會讓自己容易受到XSS攻擊。

+1

我發現我必須使用#raw(表)沒有{}。如果我包含{}結果爲空(Leaf 2.0.1)。 –