2017-06-13 96 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)。 –