WebApi と AngularJS を使用して C# .NET で作成されたアプリがあります。
アプリケーションのいくつかの時点で、ENUMS を使用して select タグにオプションを入力します。これは、値がデータベースにないため、かみそりのページを使用しているため、列挙型を返すサービスを作成する必要がないからです。そのため、列挙型を直接使用できます。
angularバージョンを1.4.7に更新するまで、すべてが正常に機能していましたが、これが機能しなくなり、角度バージョンをダウングレードできません(企業の理由により)。
たとえば、私はこのコードを持っています
<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" (文字列) の設定がある場合、select は正しいオプションを指していますが、qualificacao.cobrejunta = 2 (整数) がある場合は何も機能しないようです。
とにかくこれを再び機能させる方法はありますか、または唯一の (最良の) 解決策は、API を要求するサービスを作成することです。この API は配列を構築し、ng-option を使用するためにそれを返しますか?
君たちありがとう。