【发布时间】:2019-03-20 03:49:12
【问题描述】:
我在练习 Vue 时遇到问题,是否可以使用 v-if 设置 2 个条件?我的意思是这是我的代码:
所以基本上可以使用 && 设置两个条件还是应该以不同的方式完成?
更新的完整代码:
我尝试了 3 种方法,内部模板、方法和计算方法,它们都只检查一个条件
在你们的帮助下,我对它进行了一些修改,现在它可以工作了!非常感谢大家的帮助,但最后一件事,在控制台日志中显示:“Uncaught TypeError: _vm.validated is not a function”, 显示验证是否正确无关紧要
<template>
<div id='add-blog'>
<h2>Add news Blog Post</h2>
<form v-if='is_validated'>
<label>User</label>
<input type='text' v-model.lazy='user' required />
<label>Password</label>
<input type='password' v-model.lazy='password' required />
<button v-on:click.prevent='validated'>Check me</button>
</form>
<div v-else>
<p>error</p>
</div>
</div>
</template>
<script>
export default {
components: {},
data() {
return {
user: "",
password: "",
is_validated: true,
};
},
computed: {
validated() {
if (this.user == 'name' && this.password == '111') {
return this.is_validated = false;
}
}
},
};
</script>
【问题讨论】:
-
嗯,你跑了吗?你所拥有的应该工作。如果我没记错的话,任何有效的javascript表达式都可以进去。
-
是的,这是可能的,但我建议不要将逻辑放在模板中,而是使用计算属性
-
@Zirek ,您使用哪个 Vue 版本?,因为那假设可以工作您是否尝试过没有
.lazy的 v-mode -
@mooga 我正在使用 Vue 2.5.11,问题是它只检查第一个条件但不检查第二个条件
-
@Zirek 你试过
!==。关于它的字符串
标签: javascript html vue.js vuejs2 vue-component