2014-10-07 34 views
1

我有一個流星0.8.3應用與模板:在Meteor中,如何在顯示之前標記一些用戶輸入的文本?

<template name="example"> 
    Description: {{desc}} 
</template> 

和javascript:

Template.example.desc = function(){ 
    return Session.get("desc"); 
} 

,其中用戶已設置會話的desc

我想在顯示它之前略微標記文本,例如。用<br>替換回車符,並添加一些分詞符(html代碼&#8203;)。

我相信我會在Template.example.desc一些正則表達式替換和三重支撐模板{{{desc}}}做到這一點 - 不過,這將打開大門,進入自己的HTML到字符串,它是不安全的用戶。所以我想讓流星先讓字符串安全,然後才能應用我的標記。

我該怎麼辦呢?謝謝!

+0

嗨@Racing蝌蚪,我是在你的博客上向你詢問排行榜 - 角度觀點的人。是的,最後我用流星建立了整個事情:)世界很小。 – Anzel 2014-10-07 12:26:13

回答

1

{{{desc}}}是要走的路。 我不認爲這是一個安全錯誤,因爲你只能改變你自己的會話「desc」。 如果您正在討論一個保存在數據庫中並向所有用戶顯示的變量,服務器端在發送回客戶端之前檢查或使用標記包裝變量會更合適。

+0

是的,小小的世界!感謝您的回答。是的,實際上我真的在談論數據庫中的一個變量 - 你可以擴展你如何做檢查嗎?你爲什麼建議把它作爲服務器端檢查?我現在正在考慮客戶端的HTML轉義函數,像http://stackoverflow.com/questions/1219860/html-encoding-in-javascript-jquery將工作在'Template.example.desc' ... – 2014-10-07 22:32:04

+0

我是很快就要上牀了,所以我明天會寫一些代碼。但首先,我需要清楚瞭解你將要實現的目標。您是否要將RAW字符串存儲在數據庫中,並且只想用模板上的標記來包裝它,或者您想要將標記字符串存儲在數據庫中? – Anzel 2014-10-08 00:35:24

+0

嗨安澤爾,是的,我有數據庫中的原始字符串。我現在已經實現了一個解決方案,在客戶端明確地轉義html(例如,使用上面提到的stackoverflow解決方案),然後標記它,然後用三個大括號顯示它。我剛把它寫成一個單獨的博客文章,用我的實際用例(防止表列過於寬泛):http://racingtadpole.com/blog/tables-without-layout-fixed/。感謝您指點我正確的方向! – 2014-10-08 04:58:22

相關問題