首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Svelte中<script>中的svelte替换:head

Svelte中<script>中的svelte替换:head
EN

Stack Overflow用户
提问于 2020-08-15 03:55:47
回答 1查看 139关注 0票数 1

我正在使用svelte创建一个个人网站。我想把一大块javascript代码放在我最终的HTML代码的头部,它基于一个svelte组件。所以我有像这样的东西

代码语言:javascript
复制
<svetle:head>
    <script> var url = "myurl.com/"; </script>
<svetle:head>

[slug].svelte文件中。我想替换一个传入此组件的值,作为脚本中的一个属性。我试着做一些像这样的事情

代码语言:javascript
复制
<svetle:head>
    <script> var url = "myurl.com/{post.slug}"; </script>
<svetle:head>

不幸的是,这不起作用。如果替换{post.slug}发生在<script>之外,svelte将在将生成的html传递给客户端之前执行替换。然而,因为它在<script>中,svelte似乎假设我必须真正想要"myurl.com/{post.slug}",而不是"myurl.com/my-post-name"。我认为这可能是因为{}在javascript中有意义。

请注意,我已经尝试了"myurl.com/{post.slug}""myurl.com/"{post.slug}myurl.com/${post.slug}的每种组合。<script>中的任何{post.slug}位置都不会被替换。

如何让svelte在执行.svelte组件中的所有其他替换的同时执行此替换?我无法想象有没有办法做到这一点,但svelte文档似乎并没有解决这个问题。

EN

回答 1

Stack Overflow用户

发布于 2021-09-21 16:06:24

这有点奇怪,但是如果您需要的值是一个文本字符串,您可以将它放在<meta>标记中,然后选择它。

代码语言:javascript
复制
<svelte:head>
  <meta name="myVar" content={post.slug} />
  <script>
    var url = document.querySelector('meta[name=myVar]')
    console.log(url.getAttribute('content'))
  </script>
</svelte:head>

然而,我怀疑在没有这样的变通方法的情况下,可能有一种更好的方法来实现这一点,并且更多地了解代码将如何使用变量将有助于提供更好的答案。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63419284

复制
相关文章

相似问题

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