2014-09-19 58 views
0

所以這個問題之前已經被問過了,但我一直在輸出錯誤。轉義玉文本

所以,在玉石中逃避文字。

我有這個標記

.left 
    :markdown 
    each post in site.posts 
    a.post(href='#' + post.title) 
     h2= post.title 

的標籤將錨滾動到相應的崗位。現在我想逃避href裏面的post.title,以便刪除空格。

現在我已經看到類似thisthis的答案,但是當我嘗試編譯所有內容時,它們都會拋出錯誤。

自定義過濾器拋出和錯誤說unknown filter,第二個引發此錯誤

Unexpected token ILLEGAL 
Potentially unhandled rejection [152] SyntaxError: /Users/mhartington/Github Repos/ionic-node-faq/views/index.jade:14 
    12|  :markdown 
    13|  each post in site.posts 
    > 14|   a.post(href='#' + #{post.title}) 
    15|   h2= post.title 
    16|  .right 
    17|  each post in site.posts 

任何想法什麼我做錯了嗎?

回答

2

您可以刪除空格post.title.replace()

a.post(href='#' + post.title.replace(/\s+/g, '')) 

您也可以在URL中使用列入encodeURIComponent()URL-encode其他特殊字符:

a.post(href='#' + encodeURIComponent(post.title.replace(/\s+/g, ''))) 

錯誤使用#{...}是因爲它只是在之內的Jade語法。並且values of attributes被解析爲JavaScript,它不支持這種語法。

如果您擔心HTML編碼屬性的值,Jade將根據需要處理該屬性。

- post = { title: 'Foo>Bar' } 
a(href='#' + post.title) 
<a href="#Foo&gt;Bar"></a> 
+0

一直在尋找更多的東西像這樣一點:http://stackoverflow.com/questions/6926247/nodejs-jade-escape-markup 但是,這對我的作品。非常感謝! – mhartington 2014-09-19 03:05:38