【问题标题】:Making Django & Vue.js work together with {% verbatim %}让 Django 和 Vue.js 与 {% verbatim %} 一起工作
【发布时间】:2017-09-19 18:21:10
【问题描述】:

我试图让 django 和 Vue 一起工作,即使它们共享相同的 {{ X }} 模板语法。

我知道从 django 1.5 开始我们可以使用{% verbatim %} 标签。所以我想我可以像往常一样使用 django 模板,在我需要 VUE 接管的部分,我只会使用 {% verbatim %} 标记。然而,不是加载我的 vue 数据 django 加载了{{ variable }}

例如,我的 django 代码如下所示:

{% verbatim %}

<div id='sessions'>
  <h2>{{message}}</h2>
</div>

{% endverbatim %} 

在我的 app.js 文件中,我有:

var sessions = new Vue({
  el: '#sessions',
  data: {
    message: 'Hello Vue!'
  }
})

但不是渲染Hello Vue!,而是渲染{{message}}

控制台不显示任何错误,否则 vue 加载正确。

我怎样才能使两者协同工作?理想情况下不需要更改 vue.js {{}} 语法。

【问题讨论】:

    标签: javascript django vuejs2


    【解决方案1】:

    您可以将 Vue 的 interpolation delimiters 更改为您想要的任何内容。

    var sessions = new Vue({
      el: '#sessions',
      delimiters: ['${', '}'],
      data: {
        message: 'Hello Vue!'
      }
    })
    

    这样你就可以使用你的框架需要的任何东西。

    编辑

    在这种情况下,@Costantin 在页面上有多个 div#session。

    【讨论】:

    • 我试过了,但我似乎无法让它工作。使用您的设置,我应该能够使用${ message } 加载消息,对吧?
    • @Costantin 你应该,是的。您是否收到控制台错误?
    • 因为这样做我只会得到`${message}`的渲染
    • @Costantin 是否有可能在脚本之后渲染模板?
    • 没有控制台日志错误。但是如果我输入 sessions.message 我会正确地得到“Hello Vue!”
    猜你喜欢
    • 2017-04-21
    • 1970-01-01
    • 2018-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-01
    • 2017-05-08
    • 2011-04-02
    相关资源
    最近更新 更多