【发布时间】:2015-12-10 21:28:21
【问题描述】:
我正在使用 Computed Observable 和 Array Map 将数据绑定到选择选项。
使用下面的代码结构,如何在选择选项中将 Country 设为默认值?例如:如果用户来自Albania,则将默认国家/地区设置为Albania。请注意,我正在使用并且需要选择的值作为另一个函数的参数。
完整代码:
(function(){
var self = this;
self.SelectedCountry = ko.observableArray([]);
self.CountryData = ko.observableArray([]);
$.getJSON('https://restcountries.eu/rest/v1/all', function(data){
self.CountryData(data);
});
function viewModel(){
// Add some possible logic to make country default based on input
// from user. E.g. If data.alpha3Code === '1234'
self.Countries = ko.computed(function () {
return ko.utils.arrayMap(CountryData(),
function (data) {
return {
Name: data.name + ' ' + data.capital,
value: data.alpha3Code
}
});
}).extend({notify: 'always'})
}
self.Location = ko.computed(function () {
if (self.SelectedCountry()) {
return ko.utils.arrayFilter(CountryData(), function (item) {
return item.alpha3Code === self.SelectedCountry().value;
});
}
});
ko.applyBindings(new viewModel());
})();
【问题讨论】:
标签: javascript jquery knockout.js knockout-2.0