2013-07-27 42 views
2

我有一個地址選擇屏幕。地址數據來自服務器。數據覆蓋這些值:用無線電輸入和敲擊選擇客戶地址

  • Id =地址ID,
  • Address =地址本身,
  • TypeCode = 1或2(1被航運,2是帳單地址),
  • IsDefault =布爾型(是這個默認地址)

我將這些數據映射到兩個數組中。其中一個包含送貨地址和另一個賬單地址。

我有幾個問題。

  1. 當服務器數據到來時,我無法設置默認地址。
  2. 當我想設置一個新地址時,我點擊另一個單選按鈕。當我這樣做時,我在「selectedShippingAddress」循環中給出了兩個地址標識。我認爲這不是正確的做法。

這裏是例如:http://jsfiddle.net/sevilyilmaz/HnGS4/

感謝。

回答

0

您正在使用checked綁定錯誤的方式。它不指向應該選擇的對象的屬性,它指向具有選定對象的ID的可觀察對象。即:checked: $parent.selectedShippingAddresselectedShippingAddres = 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); 
    } 
    } 
}); 

工作樣本:http://jsfiddle.net/HnGS4/4/

相關問題