2014-01-23 175 views
0

我使用JSON我通過WepAPI獲得地址的列表,說:選擇無法選擇初始值

data1 = 
[ 
     { address1 :"# 16 6 forks", state: 'NC' }, 
     { address1 :' 17 6 forks" ,  state: 'NY'}, 
     { address1 :'18 forks",   state: 'AL'} 
] 

而且也是國家的名單如下:

data2 = [ 
    {id:1,shortname:'NY',fullname:'New York'}, 
    {id:2 ,shortname:'NC',fullname:'North Carolina'} 
    {id:3 ,shortname:'AL',fullname:'ALabama'} 
] 

我得到這個數據轉換成地址和狀態變量分別是這樣的:

if (data !== null) { 
for (var i = 0; i < 1; i++) { 
    self.addresses.push(ko.mapping.fromJS(data[i])); 
    } 
} 

和狀態

ko.utils.arrayPushAll(self.states, data); 

我的期望是,當html在地址中呈現適當的狀態項目時,應該選擇作爲例如初始地址的「NC」的初始值,而是顯示作爲第一個元素的「NY」在狀態對象中。

在調試過程中,我發現當地址變量通過ko.mappingfromJS被賦值時,它被賦值爲'undefined',然後在這個代碼之後,當states變量被賦予狀態時,頂部地址的狀態被賦值爲>來自狀態對象的第一個元素。這是我通過在地址和狀態對象從JSON填充之前和之後放置一些控制檯日誌所觀察到的。

我被困在這裏。任何幫助,將不勝感激。

<tbody> 
    <td data-corners="true" data-shadow="true" data-iconshadow="true" data-wrapperels="span" data-icon="arrow-down" data-iconpos="right" data-theme="c"> 
    <td> 
    <select data-icon="arrow-down" 
      data-bind="options: $root.states, 
         value: state, 
         optionsValue: 'shortstatename', 
         optionsText: 'statename', 
         optionsCaption :' '"> 
     </select> 
    </td>     
    </td> 
</tbody> 
+0

'data'來自哪裏,我看到'data1'&'data2'? – christiandev

+0

我通過ajax調用API並將它映射到數組格式 –

+0

可以顯示所有代碼嗎? – christiandev

回答

0

如果數據真的是:

data1 = 
[ 
     { address1 :'# 16 6 forks' ,  state: 'NC' }, 
     { address1 :'17 6 forks" ,  state: 'NY'}, 
     { address1 :'18 forks",   state: 'AL'} 
] 

它是畸形數據,並不會表現良好。您在其中包含不匹配的引號(A '"配對)。

如果它只是一個錯字,你應該修復它在你的問題。