2012-01-06 56 views
0

這是包含我的綁定的.haml代碼。我刪除了不相關的綁定。爲什麼我無法在此自定義綁定中獲取當前viewModel?

#date-extension 
    .filter-extension-container 
    .filter-extension-button 
     .button-close 
    #hand-graph-container{"data-bind" => "with:dateGraph"} 
     #x-axis 
     #hand-graph{"data-bind" => "foreach: {data:graphData}"} 
     %div{"data-bind" => "interactiveBar: $data"} 

我有一個自定義綁定的開始,像這樣。

ko.bindingHandlers.interactiveBar = { 
    init: function(element, valueAccessor, allBindingsAccessor, viewModel) { 
debugger; 
    }, 
    update: function(element, valueAccessor, allBindingsAccessor, viewModel) { 

    } 
}; 

但是,當我看着視圖模型,它等於valueAccessor和僅僅是我傳遞的數據對象。我想訪問dateGraph視圖模型,並且應該能夠訪問它因爲我根據文檔使用了「with:graphData」。

回答

6

foreach的內部,viewModel屬性是在該範圍級別綁定的數據。

有幾個選項(假設你使用的淘汰賽2.0):

  • $parent代替$data並通過valueAccessor()

  • 或第五參數綁定訪問dateGraph對象處理程序實際上是綁定上下文。綁定上下文將具有$data,$parent,$parents$root屬性。你可以看到屬性here的描述。