0

これは12に関連しています。

優れたドキュメント「Knockout API の使用」を読みました。これは、ノックアウト バインディングを使用して特定のウィジェットのコンテキストがどのように設定されるかを説明しています。

ここで、ブラウザで KnockoutJS を使用して Javascript で ViewModel にアクセスするときと同じように、Firebug コマンド ラインから Java モデルにアクセスできるようにしたいと考えています。Firebug は「$root」について知りません。基本的に、Java モデルにアクセスして @Function メソッドを呼び出す方法と、それが可能かどうかはわかりません。それはクールなREPLになります。

4

2 に答える 2

0

成功!!!

これがトリックです。カスタムバインディングを作成しました。カスタム バインディングの init() メソッドでは、viewModel が渡されます。次に、モデルを JavaScript 変数に保存します。

ステップ 1: カスタム バインディングの定義

  @net.java.html.js.JavaScriptBody(
      args = {},  body = 
        "ko.bindingHandlers.Model = {" +
            "init: function( element, valueAccessor, allBindingsAccessor, viewModel ){" +
            "Model = viewModel;" +
            "}" +
        "};"
  )
  public static native void registerModel();

ステップ 2: このデータ バインドを使用して、ページで div を宣言します。

<div data-bind="Model"></div>

ステップ 3: カスタム バインディングを main,onPageLoad() に登録します。

    MyResource.registerModel();
    MyResource.loadFirebug();
    d.applyBindings();

ステップ 4: Firebug コンソール (Model....) からモデルのオブザーバブルとメソッドにアクセスする

おそらく、Firebug div を直接データ バインドするより洗練された方法があるかもしれませんが、applyBindings() が呼び出された後に Firebug が非同期的に読み込まれるため、おそらく管理していません。

ここに画像の説明を入力

于 2015-06-04T01:07:31.213 に答える