vue.js - 为什么当布尔值更改时 v-if 不显示标题?
问题描述
我对 vue js 很陌生。我只是从 laracasts 学习使用它。我想要做的是根类和子类之间的通信。在这里,用户将放置一个优惠券代码,当他改变焦点时,它将显示一个文本。
我的html代码是这样的
<body>
<div id="root">
<coupon @applied="couponApplied">
<h1 v-if="isCouponApplied">You have applied the coupon.</h1>
</div>
<script src="https://unpkg.com/vue@2.5.21/dist/vue.js"></script>
<script src="main.js"></script>
</body>
我的main.js是这样的,
Vue.component('coupon', {
template: '<input @blur="applied">',
methods: {
applied()
{
this.$emit('applied');
}
}
});
new Vue({
el: '#root',
data: {
isCouponApplied:false,
},
methods:{
couponApplied()
{
this.isCouponApplied = true;
}
}
});
我正在使用 chrome 中的 vue devtools 扩展进行检查。没有错误。触发模糊事件。isCouponApplied
也变为真。但是 h1 没有显示。谁能告诉我我在哪里犯了错误?
解决方案
问题是您没有关闭<coupon>
标签
<div id="root">
<coupon @applied="couponApplied"></coupon>
<h1 v-if="isCouponApplied">You have applied the coupon.</h1>
</div>
应该解决你的问题。如果您不关闭标签,解析器将自动关闭它,但它会在其包装容器(根 div)关闭时这样做,因此h1
内容将被视为<coupon>
元素内部,并将被替换通过组件的模板。
推荐阅读
- android - firebase 与 android Instantapp 的集成
- python - **args 和 *kwargs 错误
- python - 正则表达式删除破折号后的 0
- javascript - 如何使 JavaScript 代码使用 ES6 工作?
- javascript - 我怎样才能使这个 Keyfunction 和 onload 函数工作?
- javascript - Angular 6:尝试区分“[object Object]”时出错。只允许使用数组和可迭代对象
- node.js - NVM 安装错误:未找到配置文件。尝试了 ~/.bashrc、~/.bash_profile、~/.zshrc 和 ~/.profile。
- mongodb - MongoDB地理索引在生产服务器上不起作用
- javascript - 我如何访问 selectedCurrency 的值
- bitcoind - sendfrom 方法的比特币节点 API 不起作用?