У меня есть выпадающий список, связанный в поле, используя knockoutjs так:Knockoutjs - Установить значение в раскрывающемся списке
<select name="CanBePickedUpDropDown" id="CanBePickedUpDropDown" data-bind="value: CanBePickedUp">
<option selected="selected" value="True">Yes</option>
<option value="False">No</option>
</select>
В моем ViewModel, поле выглядит следующим образом:
var viewModel = function() {
var self = this;
self.CanBePickedUp = ko.observable("");
}
Теперь у меня есть Web API, который сохраняет выпадающее значение в базе данных. Пока это работает. Когда я выбираю «Нет» в раскрывающемся списке, он получает в базе данных (PUT) как 0 (false). Моя проблема заключается в загрузке. Кажется, мне не кажется, что выпадающее меню задает значение «Нет». Web API выглядит следующим образом:
self.LoadItem = function() {
$.ajax({
type: "GET",
contentType: "application/json",
url: "Home",
dataType: "json",
success: function (result) {
var data = ko.utils.parseJson(result);
if (data.CanBePickedUp === true)
self.CanBePickedUp("Yes");
else
self.CanBePickedUp.value = "No";
},
error: function (xhr, err) {
}
});
};
В вызове выше, data.CanBePickedUp правильно возвращает ложь. Я хотел бы присвоить его self.CanBePickedUp, чтобы в раскрывающемся списке отобразилось «Нет» (он также отображает «Да»). Я пробовал:
self.CanBePickedUp.value = "No";
self.CanBePickedUp.value = false;
self.CanBePickedUp("No");
self.CanBePickedUp(false);
, но ни один из них не работал