我尝试在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>
答案 0 :(得分:1)
您似乎忘记为表单命名:
<form novalidate name="user">
Angular只会为命名的表单和输入创建$ scope成员。
来自文档https://docs.angularjs.org/guide/forms:
表单是FormController的一个实例。可以选择使用name属性将表单实例发布到作用域中。
类似地,具有ngModel指令的输入控件包含NgModelController的实例。可以使用输入控件上的name属性将此类控件实例发布为表单实例的属性。 name属性指定表单实例上的属性名称。