2016-04-28 19 views
0

使用JSON對象,但匹配的綁定我有一個observableArrayvar array)與JSON數據是這樣的:選項由JSON屬性

{id:0, text:'blah'} ... 

我值變量(var val)是完全一樣的:{id, text}。 我的結合是

<select data-bind="options: array, optionsText: 'text', value: val"> 

但是,我是從AJAX方法服用陣列數據,我初始化valval = ko.observable({id:1, text:'blahblah'})和敲除無法比擬的兩個對象(當然,也有不相同的對象)。

所以,我需要通過測試ID值,匹配功能的,如果我使用optionsValue結合,我的價值不會{id, text}了,但只有id

我該如何保留我的綁定爲{id,text},但僅匹配id

+1

是的,如果你使用正確的代碼示例,而不是污染你的描述,它會更好。 –

+0

我很抱歉,我被傾斜了,我的禪碼並不是最好的。 感謝您的工作 – Tistkle

回答

0

我認爲你是對數組(反之亦然)

在JavaScript數組混亂對象簡單地從零開始的數字鍵項目的集合。數組被方括號包圍,例如

var val = ['item 1'.'item 2','item 3']; 

您通過其索引編號以零開始獲得項目,例如,

val[1] // Returns 'item 2' 

如果您刪除某個項目,則該數組將自己從已刪除(切片)項目中重新編號。

對象具有鍵(ID,文本)

var val = {id : 0, text : 'Text'}; 

您與任一方括號或點例如獲得相關聯的鍵的值

`val.id` 
`val[id]` 

如果將數據存儲在數組中,可以使用索引作爲id,例如,如果id = 0,val[0]將返回'item 1'

一旦您決定了結構,您可以決定如何檢索項目。

注意一個數組可以容納比字符串更復雜的對象,所以一個數組可以容納你的對象{id:0,text'words'}但是你必須遍歷整個數組,使用for或forEach等來找到該項目。如果你可以提供真實數據的更多細節,我可以詳細說明使用哪種類型的ko.observable,ko.observableArray等。

+0

謝謝@brianlmerritt,我會再次嘗試解釋它:我有一個json對象{id,text}數組,但我需要ko只使用id來檢查選項/值綁定中的相等性,價值也是{id,text}對象... 非常感謝您的回覆。 – Tistkle