2014-05-02 40 views
0

我在我的Knockout應用程序中有一個observableArray,我想知道如何才能選擇數組中的目標對象。Knockout從observableArray獲取對象

我有以下代碼,它計算數組中所有'值的總數,但我希望能夠只選擇數組中的第二個'值'。

self.csu_treatment_inputs = ko.observableArray([ 
       { 
        value: ko.observable(10), 
        image: ko.observable('') 
       }, 
       { 
        value: ko.observable(120), 
        image: ko.observable('') 
       }, 
       { 
        value: ko.observable(160), 
        image: ko.observable('') 
       }, 

      ]); 

self.totaltest = ko.computed(function() { 
      var total = 0; 
      ko.utils.arrayFilter(self.value_inputs(), function (item) { 
        total += parseFloat(ko.utils.unwrapObservable(item.value)); 
      }); 
      return total; 
    }); 
+0

你是什麼意思「選擇」?你想要將某些東西綁定到「第二個值」(例如)? –

+0

是的。例如:我想只能從第二個對象獲取值。在一個正常的數組中,我只是使用array [1] .value等,但用knockout做這個返回一個未定義的。 – leaksterrr

+0

我已經設法通過給數組中的每個對象添加一個ID來解決這個問題,然後圍繞'if'語句包裝我的全部函數。我想知道,如果有一個更乾淨的方法來做到這一點,而不需要手動爲數組中的每個對象分配一個ID? – leaksterrr

回答

1

綁定到第二個值,使用此代碼:

<span data-bind='text: csu_treatment_inputs()[1].value'></span> 

例:如果你想從JavaScript訪問一個元素 http://jsfiddle.net/v6T5T/

,使用此:

total+= parseFloat(self.test_values()[i].value()); 

例:http://jsfiddle.net/v6T5T/2/

+0

我希望能夠綁定javascript中的第二個(或x)值,在HTML中執行此操作對我來說沒有任何用處 – leaksterrr

+0

這與js中的代碼相同:'yourarray()[1] .value' –

+0

不工作嗎?更新小提琴:http://jsfiddle.net/v6T5T/1/ – leaksterrr