У меня есть раскрывающийся список HTML, и в нем уже есть некоторые записи.Теперь, если пользователь выбирает параметр под названием «Новая версия», я открываю окно предупреждения, спрашивая versionName, и помещаю его в список раскрывающихся элементов, и этот вновь введенный параметр затем выбирается в качестве параметра по умолчанию из раскрывающегося списка.Теперь, когда я использую обычное окно предупреждения JavaScript, все идет гладко.Новая введенная версия является выбранной опцией из выпадающего списка.Однако, когда я начинаю использовать sweetalert, такого поведения больше нет.Что происходит, когда пользователь выбирает «Новая версия», открывается окно с подсчетом сладостей, пользователь вводит имя новой версии, нажимает «ОК», но в раскрывающемся списке все еще отображается выбранное значение как «Новая версия», и я не вижу новую версиюимя в раскрывающемся списке.Я вижу новую версию в раскрывающемся списке только при выборе другого параметра из раскрывающегося списка, который по существу «обновляет» раскрывающийся список, а затем я вижу свое новое значение.
Соответствующий угловой код (с использованием JavaScriptпредупреждение, которое работает нормально):
$scope.onSetDecisionVersion = function() {
if($scope.requestDetails.decisionVersion == 'New Version') {
var newVersionName = prompt("Please provide the name of the new version");
$scope.requestDetails.decisionVersion = newVersionName;
$scope.dcnVersions.push(newVersionName);
}
}
Логика Sweetalert:
$scope.onSetDecisionVersion = function() {
if($scope.requestDetails.decisionVersion == 'New Version') {
swal({
text:'Enter new version name:',
content:'input',
button: {
text:"Enter",
closeModal:true,
},
}).then(versionName =>
this.updateDropDownList(versionName));
}
}
$scope.updateDropDownList = function(versionName) {
$scope.requestDetails.decisionVersion = versionName;
$scope.dcnVersions.push(versionName);
}
HTML-код:
<label class="col-sm-4 col-form-label">Version</label>
<div class="col-sm-2">
<select required="required" ng-options="versionName for versionName in dcnVersions" class="wd100" ng-model="requestDetails.decisionVersion" ng-change='onSetDecisionVersion()'>
<option ng-selected="true" value="">Select</option>
</select>
</div>
Я закомментировал часть кода Sweetalert.Код окна предупреждения javascript есть и работает как положено.Я не могу понять, почему раскрывающийся список не отражает немедленно введенную версию со сладким предупреждением.Это CDN, который я использую для sweetalert:
<script src="https://unpkg.com/sweetalert/dist/sweetalert.min.js"></script>
Кроме того, когда я отправляю этот requestDetails.decisionVersion в бэкэнд с логикой sweetalert, reguestDetails.decisionVersion считывает правильное значение, но по какой-либо причине правильноезначение не отражается в раскрывающемся списке.