解決Swig模版filter中無法將html代碼渲染的問題

Swig支持自定義filter和tag,可以將內(nèi)容個性化。
假如我們需要展示成這樣:


Paste_Image.png

其中的“狀態(tài)”字段,可以通過swig的自定義filter功能,將其渲染在頁面上,而不需要在頁面上直接寫html代碼。
ok,我們自定義一個filter:

swig.setFilter('status', function(input) {    
    if(input) {        
        return '<span class="label label-primary">有效</span>'    
    }else{        
        return '<span class="label label-danger">無效</span>'    
    }
});

頁面上通過我們自定義的status filter顯示:

{{ a.status | status}}

結(jié)果大大出乎我們的意料:


Paste_Image.png

沒錯,直接將html代碼當(dāng)作文本輸出了!顯然這不是我們想要的結(jié)果,那么怎么解決這個問題呢?

翻閱文檔,我們發(fā)現(xiàn)有一個autoescape標(biāo)簽,官方解釋:Control auto-escaping of variable output from within your templates.,意思就是說自動控制輸出的轉(zhuǎn)義。那么能不能解決我們的問題呢?答案是肯定的,完美解決了我們的問題!

{% autoescape %}{{ a.status | status}}{% endautoescape %}

關(guān)于autoescape的更多內(nèi)容,請參考:http://paularmstrong.github.io/swig/docs/tags/#autoescape

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,323評論 25 708
  • 今天在龍之夢的一樓,有一群宛如唱詩班的人。 他們唱“給我再去相信的勇氣,越過謊言去擁抱你?!彼麄兡睢霸趬衾?,圣誕老...
    Parkkkkk_閱讀 274評論 0 0
  • 生活的精不精致完全處在于我們自己本身。 那什么樣的生活才叫精致呢?阿布里斬釘截鐵的問道?我并不疑惑...
    lucky秀_b07c閱讀 724評論 0 10

友情鏈接更多精彩內(nèi)容