所以这个问题之前已经被问过,但我的输出中不断出现错误。
所以,在 Jade 中转义文本。
我有这个标记
.left
:markdown
each post in site.posts
a.post(href='#' + post.title)
h2= post.title
a 标签会将滚动锚定到相应的帖子。现在我想转义 href 内的 post.title
以便删除空格。
现在我看到了类似 this 的答案和 this ,但是当我尝试编译所有内容时,它们都会抛出错误。
自定义过滤器抛出错误并提示未知过滤器
,第二个过滤器抛出此错误
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
关于我做错了什么有什么想法吗?
最佳答案
您可以使用 .replace()
从 post.title
中删除空格。 :
a.post(href='#' + post.title.replace(/\s+/g, ''))
您还可以使用encodeURIComponent()
至URL-encode包含在 URL 中的其他特殊字符:
a.post(href='#' + encodeURIComponent(post.title.replace(/\s+/g, '')))
<小时/>
使用 #{...}
的错误是因为它是仅在 plain text 内预期的 Jade 语法。 。并且,values of attributes被解析为 JavaScript,不支持此类语法。
如果您担心对属性值进行 HTML 编码,Jade 已经根据需要进行了处理。
- post = { title: 'Foo>Bar' }
a(href='#' + post.title)
<a href="#Foo>Bar"></a>
关于javascript - 转义 Jade 中的文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25924704/