【问题标题】:Twig string variables contain Javascript code that is compiled by VueJSTwig 字符串变量包含由 VueJS 编译的 Javascript 代码
【发布时间】:2019-02-20 04:46:47
【问题描述】:

我在将包含 Javascript 代码(例如 {{console.log('Somethings')}})的字符串作为 Twig 字符串变量传递时遇到问题。 树枝模板:

<div id="app">
<h1 class="main-heading heading--larger heading--left">{{ page_title }}</h1>
</div

带有 VueJS v2 的 JavaScript:

new Vue({
            el: '#app',
        })

如果我传递一个包含 Javascript 代码的字符串(例如 {% set page_title = '{{console.log('Somethings')}}' %}),我将看到浏览器打印

有些东西!

在控制台选项卡中。

我希望浏览器不要运行这个 JS 代码('console.log('Somethings')')。我该怎么办?

【问题讨论】:

  • 不确定这将如何导致控制台打印something,你没有在它周围添加任何&lt;script&gt;-tags?
  • 我确定控制台打印了Somethings!。我添加了脚本。我需要 VueJS 避免使用 page_title = '{{console.log('Somethings')}}' 编译 &lt;h1 class="main-heading heading--larger heading--left"&gt;{{console.log('Somethings')}}&lt;/h1&gt;
  • 我现在明白你的意思了,要么更改twig's 分隔符,要么更改vue's,因为它们使用的是相同的
  • 更改分隔符并不能解决问题,因为用户可以输入相同的 VueJS 分隔符。假设我们将 VueJS 的分隔符更改为“${”和“}”。然后用户输入“${ console.log('something') }”
  • 不可能在插值内运行语句 ({{}})。 Vue 使用模板用于创建虚拟 dom 表示。

标签: javascript vue.js vuejs2 twig


【解决方案1】:

以下链接可能会解决您的问题https://github.com/vuejs/vue/issues/4223

【讨论】:

  • 链接可能会或可能不会回答问题,但在 stackoverflow 上不鼓励仅链接回答
猜你喜欢
  • 1970-01-01
  • 2013-06-15
  • 1970-01-01
  • 2017-05-11
  • 1970-01-01
  • 2011-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多