【问题标题】:how to escape curly braces in vue.js如何在 vue.js 中转义花括号
【发布时间】:2020-12-16 05:33:17
【问题描述】:

我的数据库中有数据,其中可能包含大括号{{ }}

{{-- inside app.blade.php --}}
<!-- vue app -->
<div id="app">
    ...code
    <div> {{ $data }} </div>
    ...code
</div>

所以如果我想向用户显示它,如果它在 Vue 应用程序中,则此数据会导致问题。并且 vue 认为这是要执行的 javascript 代码。

例如,如果$data 等于{{ title-&gt;links() }},那么我会收到一个错误并且整个应用程序根本无法编译。 (它通过刀片模板)。

[Vue warn]: Error compiling template:

invalid expression: expected expression, got '>' in

    _s(title->links())

  Raw expression: {{ title->links() }}

305|              <div>{{ title-&gt;links() }}</div>
   |                   ^^^^^^^^^^^^^^^^^^^^^^^

为用户数据转义 {{ }} 大括号的最佳方法是什么(在 Vue.js 中)??

【问题讨论】:

    标签: laravel vue.js vuejs2 vue-component laravel-blade


    【解决方案1】:

    您需要使用v-prev-html 指令:

    &lt;div v-pre&gt;{{ data }}&lt;/div&gt;

    &lt;div v-html="'{{ data }}'"&gt;&lt;/div&gt;

    参考链接https://vuejs.org/v2/api/#v-pre

    【讨论】:

    • u r in app.blade.php 所以当 vuejs 和 laravel 都尝试编译时,你需要告诉 laravel 忽略这个
    • @{{ $data }} 将忽略整个数据。我想向用户展示它而不是隐藏它。
    • 你能把在哪里添加$data.?
    • $data 是来自database 的变量,它是user input。可能包含花括号。它通过刀片模板但不通过 vue 模板。
    • 基本上就是这样。 $data 有 html 或行文本 .?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-17
    • 1970-01-01
    • 2012-04-01
    • 2015-11-23
    • 2016-01-10
    相关资源
    最近更新 更多