$ invalid无法在离子angularjs中触发

时间:2014-09-21 13:44:45

标签: angularjs ionic-framework

我尝试在ionic / angularjs中进行必要的字段验证,并且当我与表单交互时,它似乎没有触发{{user。$ invalid}}。新的角度和离子,所以在这种情况下,做正确的方法是什么是必要的字段验证器。

<form novalidate >
      <div class="list">
        <label class="item item-input">
          <span class="input-label">Username</span>
          <input type="text" ng-model="user.uname" required>

          <div class="error-container" ng-show="user.uname.$dirty && user.uname.$invalid">
            <small class="error" ng-show="user.uname.$error.required">Please input a uname</small>
          </div>
        </label>

        <label class="item item-input">
          <span class="input-label">Password</span>
          <input type="password" ng-model="user.pwd" required>
          <div class="error-container" ng-show="user.pwd.$dirty && user.pwd.$invalid">
            <small class="error" ng-show="user.pwd.$error.required">Please input a password</small>
          </div>
        </label>
        <label class="item">
          <div lass="error-container">{{message}}</div>
           <div lass="error-container">Invalid:{{user.$invalid}}</div>
          <button class="button button-block button-positive" ng-disabled="user.$invalid" ng-click="login(user)">Log in</button>
        </label>
      </div>
    </form>

1 个答案:

答案 0 :(得分:1)

您似乎忘记为表单命名:

<form novalidate name="user">

Angular只会为命名的表单和输入创建$ scope成员。

来自文档https://docs.angularjs.org/guide/forms

  

表单是FormController的一个实例。可以选择使用name属性将表单实例发布到作用域中。

     

类似地,具有ngModel指令的输入控件包含NgModelController的实例。可以使用输入控件上的name属性将此类控件实例发布为表单实例的属性。 name属性指定表单实例上的属性名称。