我有一个使用 WebApi 和 AngularJS 用 C# .NET 编写的应用程序。
在我的应用程序中的某些时候,我使用 ENUMS 填充了一个带有选项的选择标签,因为由于这些值不在数据库中,所以我觉得不需要创建一个返回枚举的服务,因为我使用的是剃须刀页面所以我可以直接使用枚举。
在我将 Angular 版本更新到 1.4.7 之前一切正常,然后停止工作,并且我无法降级 Angular 版本(出于某些企业原因)。
例如,我有这个代码
<div class="col-md-3 col-xs-12">
<label for="qualificacaoCobreJunta" class="col-xs-12 control-label">@IsiCTB.Internationalization.Res.Controls.label_cobre_junta<span class="obrigatorio">*</span></label>
<div class="col-xs-12">
<select class="form-control" id="qualificacao-cobre-junta" name="qualificacaoCobreJunta" ng-model="qualificacao.cobrejunta"
required>
<option value="" id="cobrejunta-0">@IsiCTB.Internationalization.Res.Controls.label_prompt_selecione</option>
<option id="optCobreJuntaCom" value="@IsiCTB.Entities.Enums.ComSem.Com.ToInt()">@IsiCTB.Entities.Enums.ComSem.Com.GetValueString()</option>
<option id="optCobreJuntaSem" value="@IsiCTB.Entities.Enums.ComSem.Sem.ToInt()">@IsiCTB.Entities.Enums.ComSem.Sem.GetValueString()</option>
<option id="optCobreJuntaAmbos" value="@IsiCTB.Entities.Enums.ComSem.Ambos.ToInt()">@IsiCTB.Entities.Enums.ComSem.Ambos.GetValueString()</option>
<option id="optCobreJuntaNA" value="@IsiCTB.Entities.Enums.ComSem.NA.ToInt()">@IsiCTB.Entities.Enums.ComSem.NA.GetValueString()</option>
</select>
<div ng-show="formQualificacaoSubmitted" class="error-form-validation">
<div ng-show="gerenciaQualificacoesSoldador.qualificacaoCobreJunta.$error.required">@IsiCTB.Internationalization.Res.Controls.label_obrigatorio</div>
</div>
</div>
</div>
从 WebApi 获取数据的代码。
QualificacaoService.get({ id: idQualificacao }, function (data) {
$scope.qualificacao = data;
});
这会返回一个带有一堆属性的 JSON 对象,如下所示:
{
id: 1,
cobrejunta: 2,
anotherEnumField: 1,
anotherEnumField2: 5,
anotherEnumField3: 2
....
}
如果我在模型中有 like qualificacao.cobrejunta = "2" (string) 设置,则选择指向正确的选项,但如果我有qualificacao.cobrejunta = 2 (integer),则似乎没有任何效果。
无论如何要让它再次工作,或者唯一(最好的)解决方案是创建一个将请求 API 的服务,这个 API 将构建数组,然后返回它以使用 ng-option?
感谢你们。