如何以Angular形式显示错误字段的名称?

时间:2015-03-13 13:49:07

标签: angularjs

现在我在HTML中使用条件:

ng-submit="appointment.$valid && AppointmentSubmit()"

但我的表单不是由方法AppointmentSubmit()发送的。我如何看到appointment.$valid中的错误?

我也试过了:

ng-submit="appointment.AppointmentSubmit()"

但是虽然所有字段都已填满,但按钮仍被禁用。

我认为这个问题:

<select name="mouth" ng-model="month" ng-required="true" class="ng-pristine ng-invalid ng-invalid-required" required="required"><option value="? undefined:undefined ?"></option>
<option value="0">A</option>
<option value="1">Yanvar</option>
<option value="2">Fevral</option>
<option value="3" selected="selected">Mart</option>
</select>

Angular添加了一个新选项&#39;&#39;在每个选择中。为什么会这样?

1 个答案:

答案 0 :(得分:0)

正如here所解释的那样,Angular在select的开头添加了一个'undefined'选项:

  

当传递给ng-options

的一组选项中不存在ng-model引用的值时

所以解决这个问题的方法是将模型的初始值设置为select的一个选项。例如,像这样:

$scope.selectData = [
    {id: 0, value: 'A'},
    {id: 1, value: 'Yanvar'},
    {id: 2, value: 'Fevral'},
    {id: 3, value: 'Mart'}
];

$scope.month = selectData[0].id;

现在,至于如何知道哪个字段给你一个错误,那就是CSS aproach。 Angular将css类添加到给出错误的字段中,此类称为“ng-invalid”。您可以在添加“ng-invalid”类时为表单字段添加样式,以便用户可以(直观地)知道哪些字段是错误的。

示例(摘自AngularJs Documentation):

.my-form.ng-invalid {
    background: red;
    color:white;
}