gpt4 book ai didi

javascript - 在使用 Flask 时也使用大括号作为 Vue.js 中的值

转载 作者:行者123 更新时间:2023-11-30 14:13:37 28 4
gpt4 key购买 nike

我的代码运行得很好,然后我决定将它移到 Flask 中。我在我的代码中同时使用了 Vue.js 和 Flask。我的 html 代码如下:

<html>

<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO"
crossorigin="anonymous">
</head>

<body>
<div id="app" class="container">
<div class="row">
<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav">
<li class="nav-item" v-for="tab in tabs" v-bind:class="tab.active">
<a href="#" class="nav-link">{{ tab.name }}</a>
</li>
</ul>
</div>
</nav>
</div>
<div class="row">
<div class="col">
<hr class="navbarDivide">
</div>
</div>
</div>

<!-- Optional JavaScript -->
<!-- jQuery first, then Popper.js, then Bootstrap JS -->
<script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49"
crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy"
crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script src="{{ url_for('static', filename='js/challenges.js') }}"></script>
</body>

</html>

当我删除 {{ tab.name }} 时,它工作正常。如果我将 tab.name 添加到 v-bind:class="tab.name" 中,它会在网站中显示正确的 tab.name。这就是 vue.js 工作的所有证据,并且一切都应该工作。通过调试,我发现问题出在 {{ tab.name }}(不是 tab.name,而是它外面的括号)。有什么解决方案?

我的javascript如下:

var app = new Vue({
el: '#app',
data: {
tabs: [
{ name: "Home", active: "" },
{ name: "Challenges", active: "active" },
{ name: "Scoreboard", active: "" },
{ name: "About", active: "" }
],
challenges: finalChallenges
}
});

编辑:我刚刚意识到为什么它可能不起作用。 {{ something }} 是一个 flask 的东西,它覆盖了 vue.js。有解决方法吗?

最佳答案

Flask 使用 jinja 作为它的模板语言,它也使用 {{ variable }}

因此,当 Flask 渲染模板时,{{ tab.name }} 变为空字符串,因为 tab.name 不是当前渲染中的上下文变量。

你可以在括号内使用转义括号

{{ '{{ tab.name }}' }}

关于javascript - 在使用 Flask 时也使用大括号作为 Vue.js 中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53953300/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com