当然这肯定是我正在做的事情,但我有一个真正的问题,填充一个选择元素并使用Knockout设置所选值以始终如一地工作。我有一个ASP.NET视图,它有许多选择选项,我需要使用服务器中的数据设置选定的值。
有时这些绑定正确,但通常不会选择selectedValue - 这是我正在做的事情吗?
当使用ko.mapping来设置可观察的属性时,我根本无法使用它,所以一直在设置单独的observables值,但即使这样也不会一直有效。
<select data-bind="options: possibleValues, optionsText: 'Value', optionsValue: 'Id',value: selectedValue, optionsCaption: 'Select Value...'">
function ViewModel() {
var self = this;
self.selectedValue = ko.observable();
self.possibleValues = ko.observableArray();
function GetValues() {
$.ajax({
url:"http:/abc.com/api/GetValues",
dataType: "json",
type: "GET",
data: {},
success: function(data) {
$.each(data.values, function(i,option){
self.possibleValues.push(option);
});
}
}
function GetInitialValue() {
$.ajax({
url:"http:/abc.com/api/GetValue",
dataType: "json",
type: "GET",
data: {},
success: function(data) {
*using ko.mapping doesn't work at all?*
self.selectedValue1(data1.Id)
self.selectedValue2(data2.Id)
self.selectedValue3(data3.Id)
}
});
}
}
ko.applyBindings(new ViewModel());