2014-09-21 54 views
0

我正在尝试在离子/ 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

看起来像是你忘记了命名您的形式:

<form novalidate name="user"> 

角将只名为形式和投入创建$范围的成员。

从文档https://docs.angularjs.org/guide/forms

形式是的FormController的一个实例。可以使用name属性将表单实例可选地发布到范围中。

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