javascript - Vue - 从 REST API 实时获取数据

标签 javascript vue.js vue-resource real-time-data

所以,我有一个输入供用户输入他的用户名。用户名通过v-model绑定(bind)到vue实例。

我在 Controller 中创建了此函数来检查用户名是否唯一(经过测试并且有效):

/**
 * @description
 * GET /api/account/unique/username/:username
 * Checks if new user signing up has a unique username
 */
module.exports.isUsernameUnique = function isUsernameUnique(req, res, next) {
  const username = req.params.username;
  if(!username) {
    return res.status(400).send({ message: 'Username is missing.' });
  }

  personRepository.findPersonByUsername(username, (err, person) => {
    if(person) {
      return res.status(400).send({ message: 'Username has already been taken.' });
    } else {
      res.status(200).send({ unique: true });
    }
  });
};

在我的 vue 脚本中:

data: {
    username: ''
},
methods: {
  isUsernameUnique: function() {
    var self = this;
    var url = 'api/account/unique/username/' + self.username;
    self.$http.get(url)
      .then(function(res){
      }, function(err){
      });
  }
}

如果用户输入的用户名不唯一,则应立即显示输入下方的范围并显示错误消息。我该如何实现这个目标?

最佳答案

您可以在 data() 中添加一个初始值为 false 的标志变量,一旦 api 的响应给出结果(因为用户名是唯一的),该变量就会变为 true。

请查看以下代码更改:

data: {
    username: '',
    isUniqueUserName: false
    },
methods: {
  isUsernameUnique: function() {
    var self = this;
    var url = 'api/account/unique/username/' + self.username;
    self.$http.get(url)
      .then(function(res){
         if(res.unique) this.isUniqueUserName = true;
      }, function(err){
      });
  }
}

在您的跨度中添加此

<span v-if="!isUniqueUserName ">User Name is Not Unique</span> 

关于javascript - Vue - 从 REST API 实时获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49343501/

相关文章:

javascript - 从 Mongodb 格式化 ISODate

vue.js - 如何在 Nuxt 中为 .env 文件指定另一个目录或名称

javascript - Vue 多选不删除选项

vue.js - 无法在 CORS 请求中发送凭据

javascript - 如何判断div之间是什么?

javascript - 检查 jquery 的返回值失败

vue.js - 如何将 Prop 传递给 Vuejs 中的输入值

javascript - 插件中的 Vue.js 绑定(bind)上下文?

json - 为什么 'axios' 和 $http (vue-resource) 对 json 查询字符串的行为不同?

javascript - 页面加载后使用 JavaScript 将复选框设置为选中