2012-01-06 6 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) { 

    } 
}; 

しかし、私はViewModelに見たとき、それはvalueAccessorに等しく、私は渡しているだけのデータオブジェクトである。私はdateGraphのViewModelへのアクセスを希望し、それにアクセスすることができるはずです私は "with:graphData"をドキュメントに基づいて使用しているからです。

答えて

6

foreachの中のviewModelプロパティは、そのスコープレベルでバインドされているデータです。 $parent代わり$data

  • パスとvalueAccessor()

  • または結合する第五引数を経由してあなたのdateGraphオブジェクトにアクセス:

    オプションがいくつかあり(あなたはノックアウト2.0を使用していると仮定した場合)されていますハンドラは実際にバインディングコンテキストです。バインディングコンテキストは、$data,$parent,$parents、およびプロパティを持ちます。プロパティhereの説明を見ることができます。

関連する問題