У меня есть приложение, написанное на C# .NET с использованием WebApi и AngularJS.Входной сигнал AngularJS с целым значением в ng-model stop working
В некоторых случаях в моем приложении я добавляю тег select с параметрами, используя ENUMS, потому что, поскольку значения не находятся в базе данных, мне не нужно создавать службу, возвращающую перечисления, m используя бритвенные страницы, чтобы я мог напрямую использовать перечисления.
Все работало нормально, пока я не обновил угловую версию до 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" (строка) заходящего в модели, выбор указывает на правильную опцию, но если у меня есть qualificacao.cobrejunta = 2 (целое число), чем ничего не работает.
В любом случае, чтобы это снова работало, или единственное (лучшее) решение - это служба, которая запросит API, и этот API построит массив и вернет его для использования ng-option?
Спасибо, ребята.
В своем угловом коде попробуйте преобразовать значение в строку перед назначением модели, было бы неплохо, если вы также можете поделиться им с нами. – Fedaykin
Вы имеете в виду использование $ watch в $ scope для преобразования в строку? Я не поставил свой угловой код, потому что я действительно ничего не делаю, просто отправьте его на мой webapi. –
Везде, где вы выполняете назначение модели ... 'qualificacao.cobrejunta =" 2 "' Вы получаете значения из webapi или вы только отправляете их? Если это так, мы должны увидеть, что происходит по проводам. – Fedaykin