d15*_*596 15 javascript vue.js vue-component vuejs2
我试图使用一个v-if语句来显示一些 HTML,仅当archiveNote变量不为空/空时。
<div v-if="archiveNote === null || archiveNote ===''" class="form-check ml-3" id="include-note-div">
Run Code Online (Sandbox Code Playgroud)
这是它的实例化方式
export default {
name: "ConfirmReleaseFilesModal",
props: {
archiveName: String,
archiveNote: String
},
Run Code Online (Sandbox Code Playgroud)
然后从另一个 Vue 文件传入
<confirm-release-files-modal
v-if="showConfirmReleaseFilesModal"
@cancel="closeModal"
@confirmAndEmail="releaseAction"
@confirmNoEmail="releaseAction"
:archive-name="archiveName"
:archive-note ="archiveNote"
>
</confirm-release-files-modal>
Run Code Online (Sandbox Code Playgroud)
的HTML仍然显示块的时候archiveNote是console.log出来为空
Dan*_*Dan 30
如果您想显示<div>唯一的真实值(不是空/空/等),您可以简单地执行以下操作:
<div v-if="archiveNote">
Run Code Online (Sandbox Code Playgroud)
这给出了与double bang相同的结果:
<div v-if="!!archiveNote">
Run Code Online (Sandbox Code Playgroud)
这两个表达式都将 JavaScript 的所有 8 个假值计算为false:
falsenullundefinedNaN''0n (BigInt)和其他一切true。因此,如果您的变量评估为除这些之外的任何值,它将是真实的,并且v-if将显示。
这是这些和一些真实示例的演示:
new Vue({
el: "#app",
data() {
return {
falsy: {
'null': null,
'undefined': undefined,
'0': 0,
'-0': -0,
'\'\'': '',
'NaN': NaN,
'false': false,
'0n': 0n
},
truthy: {
'[]': [],
'{}': {},
'\'0\'': '0',
'1': 1,
'-1': -1,
'\' \'': ' ',
'\'false\'': 'false',
'5': 5
}
}
}
});Run Code Online (Sandbox Code Playgroud)
body {
background: #20262E;
padding: 20px;
font-family: Helvetica;
}
#app {
background: #fff;
border-radius: 4px;
padding: 20px;
transition: all 0.2s;
}
#falsy, #truthy {
display: inline-block;
width: 49%;
}
.label {
display: inline-block;
width: 80px;
text-align: right;
}
code {
background: #dddddd;
margin: 0 3px;
}Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="app">
<div id="falsy">
Falsy:
<div v-for="(test, label) in falsy">
<div class="label">{{ label }}</div>
<code v-if="test">true</code>
<code v-else>false</code>
</div>
</div>
<div id="truthy">
Truthy examples:
<div v-for="(test, label) in truthy">
<div class="label">{{ label }}</div>
<code v-if="test">true</code>
<code v-else>false</code>
</div>
</div>
</div>Run Code Online (Sandbox Code Playgroud)