我试图填充“选择”使用敲除数据绑定选项的值列表,并设置其中一个值为“选择”默认情况下。
有两个服务器请求,
(dataRepository.GetLifelines)
第一项要求已得到解决。数据绑定到select,使用"Selected“值工作得很好。
--我对在列表中设置默认的“选定值”有问题。有人能帮帮我吗。方法是this.selectValue.它试图将selectedLifeline设置为匹配的“名称”。
function LifelineViewModel() {
this.lifelines = ko.observableArray([{}]);
this.selectedLifeline = ko.observable();
this.updateData = function (data) {
var boundUpdate = bind(function (value) {
this.lifelines.push(value);
}, this);
$.each(data, function (index, item) {
boundUpdate(item);
});
dataRepository.GetMockSelectedLifeline(bind(this.selectValue, this));
}
this.selectValue = function (data) {
this.selectedLifeline = ko.utils.arrayFirst(this.lifelines, function (lifeline) {
return lifeline.Name === data.Name;
});
}
}
LifelineViewModel.prototype.Init = function () {
var boundUpdateData = bind(this.updateData, this);
dataRepository.GetLifelines(boundUpdateData);
}
var bind = function (func, thisValue) {
return function () {
return func.apply(thisValue, arguments);
}
}发布于 2011-10-21 07:55:34
由于selectedLifeline是可观察的,所以您没有正确地设置它的值。
你能试试这个吗。而不是:
this.selectValue = function (data) {
this.selectedLifeline = ko.utils.arrayFirst(this.lifelines, function (lifeline) {
return lifeline.Name === data.Name;
});
} 。。就像..。
this.selectValue = function (data) {
this.selectedLifeline(ko.utils.arrayFirst(this.lifelines, function (lifeline) {
return lifeline.Name === data.Name;
}));
} https://stackoverflow.com/questions/7845690
复制相似问题