2014-09-21 56 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屬性指定表單實例上的屬性名稱。