我有一个地址选择屏幕。地址数据来自服务器。数据涵盖了这些值:
Id
=地址ID,Address
=地址本身,TypeCode
= 1或2(1是送货,2是帐单邮寄地址),IsDefault
=布尔值(这是默认地址)我将这些数据映射到两个数组中。其中一个包含送货地址和另一个帐单地址。
我有几个问题。
selectedShippingAddress
”循环中给出了两个地址ID。我认为这不是正确的方法。以下是示例:http://jsfiddle.net/sevilyilmaz/HnGS4/
感谢。
答案 0 :(得分:0)
您使用checked
绑定方式错误。它不指向应该选择的对象的属性,它指向具有所选对象的ID的可观察对象。即:checked: $parent.selectedShippingAddres
和selectedShippingAddres = ko.observable();
。现在,当您在updateAddresses
中填充数据时,可以检查并保存默认ID:
$.map(data.AddressListItems, function (v) {
if (v.TypeCode === 1) {
viewModel.shippingAddresses.push(v);
if (v.IsDefault) {
viewModel.selectedShippingAddress(v.Id);
}
} else {
viewModel.billingAddresses.push(v);
if (v.IsDefault) {
viewModel.selectedBillingAddress(v.Id);
}
}
});