2012-11-07 23 views
0

我正在嘗試對淘汰賽視圖模型進行一些重構。從模型對象分離一些視圖邏輯開始。如何在Knockout中傳遞可見綁定的值?

我想知道在使用可見綁定時是否有方法將值傳遞回來?

我目前的情況我在一個Foreach循環中。我想傳回任何對象淘汰賽的迭代,到我上可見綁定調用方法:

data-bind="visible: SomeMethod" 

data-bind="visible: SomeMethod(object)" 

的方法顯然是一個ko.computed功能,我曾嘗試將價值傳回給它,但並未成功。它始終未定義。

var SomeMethod = ko.computed(function() { 
..... 
} 

任何想法,如果這是可能的?

回答

2

Knockout在計算的observable內執行綁定來跟蹤依賴關係。我不確定你的確切目標,但你可以在你的情況下使用正常的功能。

var SomeMethod = function(item) { 
    //do something with the item and return a value 

}; 

取決於你想傳遞什麼,你可能會想使用$data在你的綁定,如:

data-bind="visible: SomeMethod($data)" 

是更常用的另一種選擇,以實際放置一個計算上每個項目返回適當的值。如果傳遞給函數的值在項目本身上表示,那麼您應該能夠創建一個計算以清楚地表示其值。

+0

謝謝RP。一對夫婦快速跟進問題。我以爲我遇到過,除非「SomeMethod」是一個計算函數,它永遠不會調用一個正常的「函數SomeMethod(data){}」。另外,你能否給我舉一個最後陳述的例子「應該能夠創建計算以清楚地表示其價值」? 「SomeMethod」實際上駐留在父項中,所以除非我在函數中傳遞對象,否則這將是我無法訪問該對象的唯一原因。所以它實際上是(data-bind =「visible:$ parent.SomeMethod」)。謝謝。 – pghtech

+0

我剛纔的意思是這樣的東西之間的區別:http://jsfiddle.net/rniemeyer/C6utA/和http://jsfiddle.net/rniemeyer/CzH9F/ –

+0

謝謝RP。現在清除。 – pghtech

相關問題