jac*_*bdo 1 javascript ecmascript-6 template-literals
在以下示例中,我尝试呈现帖子列表(标题,正文及其标签):
const container = $('.container');
posts.forEach((post)=> {
container.append(
`<div>
<h2>${post.title}</h2>
<p>${post.body}</p>
<div>
${post.tags.map((tag) => {
`<span>${tag.name}</span>`
})}
</div>
</div>`)
});
Run Code Online (Sandbox Code Playgroud)
但是,输出会在标记之间产生一个额外的逗号。我试图输出'test'而不是实际的标签名称,以及将span标签换成另一个html标签,但是结果仍然相同。
我曾尝试搜索此问题,但没有找到其他任何使用模板文字遇到此问题的人。
这就是Array.join()默认情况下的工作方式(在隐式对数组进行隐式字符串化时会被调用),在数组条目之间添加逗号-这是map()返回的->数组。您可以通过自己调用,将空字符串作为参数传递给join()来轻松摆脱它
${post.tags.map((tag) => `<span>${tag.name}</span>`).join('')}
Run Code Online (Sandbox Code Playgroud)
请注意,您也需要从地图返回...
| 归档时间: |
|
| 查看次数: |
790 次 |
| 最近记录: |