2016-02-10 73 views
0

我正在使用SCALA作爲後端的播放框架。 Json數據從控制器提供給前端。在服務器端使用HTML模板

我想將HTML添加爲json某些字段的值。 此HTML將作爲模板保存,並且數據將在運行時添加到此模板中。

我想我應該在HTML模板中放入唯一的名稱,然後這些名稱將被我想在運行時添加的數據替換。最終,這個HTML將被添加到json響應中。

我的方法正確嗎?如果沒有,在HTML模板中添加數據的最佳方法是什麼,在json響應中添加此模板並將此組合響應發送到前端以供進一步使用?

使用字符串替換在HTML模板中添加數據是一種很好的做法嗎?

+1

在JSON中嵌入HTML的用例是什麼?如果您想要簡單地進行字符串替換,您可能需要查看諸如FreeMarker之類的模板引擎。 – rethab

+0

那麼,您是在使用Play模板作爲前端,還是隻使用Play作爲後端,並將其他用作UI? –

+0

@rethab我的應用程序的前端使用此json將其可視化爲表格。在表格的某些欄目中,我想顯示cutomized HTML。這就是爲什麼我嵌入它。你是否建議我將scala作爲後端使用freemakrer作爲playframework? – user189107

回答

1

我想只要你使用Play,你可以把你的HTML模板放到app/views包中。假設你打電話給你的模板mytemplate.scala.html 你可以將此視圖參數化爲任何播放視圖。 在代碼中生成JSON響應的地方,您可以調用mytemplate(參數)來生成html,Play將爲您完成所有工作。然後使用play.api.libs.json.JSON對象的方法和相關設施,您可以將此html轉換爲JSON。 所以在你的控制器的代碼中,你將會有類似Ok(JSON.toJson(mytemplate(parameters)))

這當然是一個草圖,所以你需要詳細說明和嘗試。

+0

好的。 這是標準的方式嗎? 由於我不得不將模板的次數與我擁有的文檔數量一起調用,請將它們添加到列表中,然後將其發送到前端以顯示在表格中。這可能是幾百個。 – user189107

+0

這樣的播放視圖實際上是一個帶參數的函數,當它被編譯時。所以如果你稱它爲數百次,那麼沒有問題。 如果您尚未執行此操作,請查看Play文檔的這部分https://www.playframework.com/documentation/2.2.x/ScalaJson。它更多的是對JSON模型對象進行序列化,但我認爲它對你有用。 –

+0

好的!謝謝。 :) – user189107