Имам приложение, написано на C# .NET, използващо WebApi и AngularJS.
В някои моменти от моето приложение попълвам избран маркер с опции, използвайки ENUMS, защото тъй като стойностите не са в базата данни, не чувствам необходимост да създавам услуга, която връща 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
....
}
Ако имам настройка като qualificacao.cobrejunta = "2" (низ) в модела, изборът сочи към правилната опция, но ако имам qualificacao.cobrejunta = 2 (цяло число), отколкото нищо не изглежда да работи.
Има все пак това да работи отново, или единственото (най-добро) решение е да създадете услуга, която ще поиска API, и този API ще изгради масива и след това ще го върне за използване на ng-option?
Благодаря ви момчета.
qualificacao.cobrejunta = "2"
получавате ли стойности от webapi или само ги изпращате? Ако случаят е такъв, трябва да видим какво става по жицата. - person Fedaykin   schedule 17.11.2015