以下代码是我表单的一行。
我在整个代码段中多次复制“AddCarForm.uCarName。$ dirty&& AddCarForm.uCarName。$ invalid”。我可以将它重构为一个变量,当用户的输入改变/更好的重构方式时,它将根据条件的答案进行更新吗?
<div class="form-group required " ng-class="{'has-error': AddCarForm.uCarName.$dirty && AddCarForm.uCarName.$invalid}">
<label class=" control-label col-lg-5 " for="uCarName">Name:</label>
<div class="col-lg-7 ">
<input type="text" ng-model="carDetails.carName" name="uCarName" class="form-control" required />
</div>
<div class="row">
<div ng-show="AddCarForm.uCarName.$dirty && AddCarForm.uCarName.$invalid" class="error-msg col-lg-offset-5 col-lg-7">
<span ng-show="AddCarForm.uCarName.$error.required"> Car Name required </span>
</div>
</div>
</div>
答案 0 :(得分:1)
在你的控制器上,让表达式从一个函数返回,即:
$scope.shouldShow = function() {
return $scope.AddCarForm.uCarName.$dirty && $scope.AddCarForm.uCarName.$invalid;
}
然后执行:
ng-show="shouldShow();"
只需要确保表单实际上在范围内。