83

特定の DOM 要素からバインドされた ViewModel JavaScript オブジェクトを取得することは可能ですか?

ko.applyBindings( gLoginViewModel, document.getElementById("login-form") );
ko.applyBindings( gLoginViewModel, document.getElementById("register-form") );

そして別の場所 - かなり無関係なコード - 次のようなもの:

var viewModel = ko.getViewModel( formElement );
viewModel.someObservable( someData ); // observable available in all ViewModels

次のようなことができればさらに良いでしょう:

var viewModel = ko.getViewModel( someChildElement );
4

1 に答える 1

139

Knockout には、ここで役立つユーティリティ メソッドが 2 つあります。

  • ko.dataFor要素がバインドされている ViewModel を返します。
  • ko.contextFor現在の要素の「バインディング コンテキスト」を返します。このメソッドから返されるオブジェクトは、次のようなものを返します。

    { 
        $data: ...,
        $parents,
        $root
    }
    

あなたの質問が理解できれば、おそらくko.dataForここで使用できます。を使用した簡単な例dataForを次に示します。

于 2012-12-23T23:47:52.580 に答える