首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Jade中,为什么我有时可以按原样使用变量,而有时必须将它们括在#{......}中?

在Jade中,为什么我有时可以按原样使用变量,而有时必须将它们括在#{......}中?
EN

Stack Overflow用户
提问于 2013-02-05 22:15:17
回答 2查看 2.6K关注 0票数 2

请看下面的代码

代码语言:javascript
运行
复制
        for story in book 
            if story.title.length < 140
                - var storyTitle = story.title;
            else
                - var storyTitle = story.title.substring(0, 140) + '...';

            .tiles
                a(href= 'http://' + story.link)
                    img(src=story.thumbnail, width='150', height='150')
                p Title: #{storyTitle}
                p Date: #{story.time}
                p Author: #{story.authorName}

这对我很有效。然而,令我困惑的是,在tmes中,我可以使用story.attribute,而在某些地方,我必须使用#{story.attribute}。

例如。如果我用这行

代码语言:javascript
运行
复制
p Title: storyTitle

如果没有鼠标,它只需在浏览器中打印字符串"Title: storyTitle“。

另一个例子是,如果我使用img(src=#{story.thumbnail}, width='150', height='150'),它不工作并且我得到一个html字符串(%20%20...某件事...)在我的浏览器里。

那是怎么回事呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-02-06 05:33:50

简单地说

等号(=)和内部代码后面的

不会阻止大括号。在其他地方使用#{}

票数 7
EN

Stack Overflow用户

发布于 2013-02-06 01:52:26

区别在于标签的内容和属性。在属性中,可以使用不带大括号的变量,如

代码语言:javascript
运行
复制
img(src=story.thumbnail

因为您不能只将文本放在属性的值中,所以它必须是一个字符串:

代码语言:javascript
运行
复制
img(src="/images/story.jpg")

你不能就这么做

代码语言:javascript
运行
复制
img(src=/images/story.jpg)

但是在标记的内容中,您必须使用hash+braces #{},以便Jade知道哪些位是变量,哪些位只是文本。

如果你想在标签属性中使用hash+braces,你可以这样做:

代码语言:javascript
运行
复制
img(src="#{story.thumbnail}")
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14709560

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档