javascript - 显示带条件的 Bootstrap 警报 (Vue.js) : how can I access this variable in order to change its value?

标签 javascript html twitter-bootstrap authentication vue.js

首先,如果我的问题的答案很明显,我想道歉,但是由于我对 Vue.js 还是很陌生,我真的被困在这里,我需要帮助。

我有一个身份验证系统,如果用户想在不输入用户名的情况下注册,我想显示一个 Bootstrap 警报。代码现在看起来像这样:

<template>
  <div class="container">
    <div class="row">
      <div class="col-md-6 mt-5 mx-auto">
        <form v-on:submit.prevent="register">
          <h1 class="h3 mb-3 font-weight-normal">Register</h1>
          <div class="form-group">
            <label for="username">Username</label>
            <input
              type="text"
              v-model="username"
              class="form-control"
              name="username"
              placeholder="Please choose your username"
            >
          </div>
          <div class="form-group">
            <label for="email">Email Address</label>
            <input
              type="email"
              v-model="email"
              class="form-control"
              name="email"
              placeholder="Please enter your email address"
            >
          </div>
          <div class="form-group">
            <label for="password">Password</label>
            <input
              type="password"
              v-model="password"
              class="form-control"
              name="password"
              placeholder="Please choose your password"
            >
          </div>
          <button class="btn btn-lg btn-primary btn-block" type="submit">Register</button>
        </form>
        <div>
          <b-alert variant="success" show>Example alert</b-alert>
        </div>
        <div>
          <b-alert variant="danger" :show="showAlert">Example Alert!</b-alert>
        </div>
      </div>
    </div>
  </div>
</template>

<script>
import axios from "axios";
import router from "../router";

export default {
  data() {
    return {
      username: "",
      email: "",
      password: "",
      showAlert: false        };
  },
  methods: {
    register() {
      axios
        .post("/user/register", {
          username: this.username,
          email: this.email,
          password: this.password
        })
        .then(res => {
          if (!res.data.username) {
            // show an alert, I would like to do something similar to "showAlert = true;"
          } else {
            // redirect to login
          }
        })
        .catch(err => {
          console.log(err);
        });
    }
  }
};
</script>

<style scoped>
@import "../assets/css/reglog.css";
@import "../assets/css/modal.css";
</style>

但是我不确定如何访问 showAlert 变量,也不知道如何在 if 语句中更改它的值。我在这里唯一知道的是,如果我在代码(从脚本标记开始计算的第 9 行)中手动将 showAlert 从 false 更改为 true,页面会使用react并在需要时显示警报。

如果您需要更多信息或者有什么不清楚的地方,我很抱歉,我有点累了,坚持了几个小时,我不会撒谎。

最佳答案

您可以访问 showAlert 变量如下:this.showAlert = true

.then(res => {
  if (!res.data.username) {
    this.showAlert = true;   // update showAlert
   } else {
    // redirect to login
   }
})

关于javascript - 显示带条件的 Bootstrap 警报 (Vue.js) : how can I access this variable in order to change its value?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54241399/

相关文章:

html - HTML 中具有变量替换的三元运算符

css - 我可以在没有 JS 的情况下调整 Bootstrap Column 跨度吗?

javascript - 单击元素时 Angular 关注输入

javascript - 提交文件输入数组而不提交表单本身

html - 是否可以选择 css 生成的内容?

html - 如何使列中的元素相对于另一列垂直居中

jQuery <tr> 链接(打开 Bootstrap Modal 的按钮除外)

javascript - 不知道为什么 jQuery find() 方法不起作用

javascript - 将几个 json 文件合并为一个

jquery - 获取上一个标签的id