首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ng更改验证现有的用户id

使用ng更改验证现有的用户id
EN

Stack Overflow用户
提问于 2017-11-24 06:04:09
回答 2查看 94关注 0票数 0

因此,我试图使用创建一个用户id验证,问题是我的if/else statement是错误的。因为有时它给了我错误的值,让我的ng-class在输入时工作,但是一旦输入被删除,它就给了我错误的值。

html

代码语言:javascript
复制
<div ng-class="{'has-success': vm.value == 'true', 'has-danger': vm.value == 'false'}">
     <input type="text" name="userId" class="form-control form-control-sm" ng-class="{'form-control-success': vm.value == 'true', 'form-control-danger': vm.value == 'false'}"
                placeholder="Username" ng-model="userData.userId" ng-change="vm.checkId(userData.userId)" ng-pattern="/^[a-zA-Z0-9]*$/" ng-minlength="5" ng-maxlength="14" required>
     <div ng-messages="regForm.userId.$error" class="colorValid" role="alert">
        <div ng-message="minlength">Your field is too short</div>
        <div ng-message="maxlength">Your field is too long</div>
       <div ng-message="pattern">Invalid Characters</div>
    </div>
 </div>

控制器

代码语言:javascript
复制
function checkId(data) {
    if (data) {
      return dataservice.getUser(data).then(function (data) { // get request
        if (data) {
          console.log('User-ID not available');
          vm.value = 'false';
        }else {
          vm.value = 'true';
          console.log(data);
          console.log('User-ID Available');
        }
      });
    } else {
      vm.value = 'null';
    }
}

谢谢,欢迎任何建议。

EN

回答 2

Stack Overflow用户

发布于 2017-11-24 06:13:31

首先,您对API调用返回的checkId参数和数据使用相同的变量名,因此很难理解您的意图是什么。另外,请澄清getUser()在“数据”中返回的内容。

尝试在修改代码之后添加检查空字符串,因为用户删除了值后,它仍然是设置的,但它是空的。

代码语言:javascript
复制
function checkId(userData) {
  if (userData && userData!="") {
    return dataservice.getUser(userData).then(function (data) {
      if (data!="") {
        console.log('User-ID not available');
        vm.value = 'false';
      } else {
        vm.value = 'true';
        console.log(data);
        console.log('User-ID Available');
      }
    });
  } else {
    vm.value = 'null';
  }
}
票数 1
EN

Stack Overflow用户

发布于 2017-11-24 06:44:32

代码语言:javascript
复制
function checkId(userID) {
    if (userID != null) {
        return dataservice.getUser(userID).then(function(user) {
            if (user) {
                vm.value = false;
                console.log('User-ID not available');
            }else {
                vm.value = true;
                console.log('User-ID Available');
            }
        });
    } else {
      vm.value = false;
    }
}

并将html更改为:

代码语言:javascript
复制
<div ng-class="{ 'has-success': vm.value, 'has-danger': !vm.value }">
    <input type="text" name="userId" class="form-control form-control-sm" ng-class="{'form-control-success': vm.value, 'form-control-danger': !vm.value}" placeholder="Username" ng-model="userData.userId" ng-change="vm.checkId(userData.userId)" ng-pattern="/^[a-zA-Z0-9]*$/" ng-minlength="5" ng-maxlength="14" required>
     <div ng-messages="regForm.userId.$error" class="colorValid" role="alert">
        <div ng-message="minlength">Your field is too short</div>
        <div ng-message="maxlength">Your field is too long</div>
        <div ng-message="pattern">Invalid Characters</div>
    </div>
 </div>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47467223

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档