javascript - Vue 和带模板标签的条件渲染

标签 javascript vuejs2 web-frontend

我正在尝试遵循文档:

但由于某种原因,我的模板没有按预期工作,我一输入 <template v-if="variable"> vue 无法呈现任何内容。

<script type="text/x-template" id="dashboard-inititial-message">

<template v-if="okBoom">
    <h1>Title</h1>
    <p>Paragraph 1</p>
    <p>Paragraph 2</p>
</template>

<div v-if="ok">
    <h1>Title</h1>
    <p>Paragraph 1</p>
    <p>Paragraph 2</p>
</div>
<div v-else>
    <p>ELSE</p>
</div>
</script>

有什么建议吗?

展示问题的片段:

https://jsfiddle.net/o2tL2ems/1/

最佳答案

Peter 在评论中指出了关于 vue.js 的一些事情。模板不能是根元素,一般根标签只能是一个。

所以当你有这样的模板时:

<script type="text/x-template" id="dashboard-inititial-message-mk1">
    <div v-if="okBoom">
        <h1>Title</h1>
        <p>Paragraph 1</p>
        <p>Paragraph 2</p>
    </div>
    <h3>adas</h3>
    <div v-if="ok">
        <h1>Title</h1>
        <p>Paragraph 1</p>
        <p>Paragraph 2</p>
    </div>
</script>

您基本上是在向 vue.js 询问问题。一旦带有 okBoom 的 div 结束,Vue 将停止解析您的模板。

网上到处都是类似我的问题:

简而言之就是解决方案。将您的模板包装到 master span、div 或 transition 中(然而这个似乎有点 hacky,另一方面它不会生成不必要的 html 标签)。

关于javascript - Vue 和带模板标签的条件渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42373918/

相关文章:

javascript - 取消订阅 Firebase 实时数据库

php - 查看正则表达式中的组中是否存在某个值,然后在文本中对其进行操作

javascript - 这个变量从哪里来?

vue.js - 我的 Vue.js 代码应该有多个小实例还是一个大实例?

mysql - Easy DB Web 前端

javascript - 在前端使用 Node JS

javascript - jquery 文件在域之外不起作用(crossdomain.xml)

javascript - 为什么与另一个 Ember 对象的绑定(bind)不起作用?

javascript - 一行导入多个组件(VueJs)

html - 单击后按钮仍保持按下状态