3

Typescript とノックアウトを使用して簡単なことをしようとしていますが、うまくいきません。私の typescipt のコードベースが成長するにつれて、ビューモデルが成長しているように見え、メイン クラスとサブクラスで適切にモデル化する必要があります。タイプスクリプトはそれに最適です!ノックアウトと組み合わせて、迷惑な問題/バグ/状況に遭遇しました....どんな助けにも感謝します!!! タイプスクリプトコードは次のとおりです。

class subClassA {
  counter  =0;
  incCounter(){
    this.counter++;
    console.log("counter incs: "+this.counter);
  }
}

class MainViewModel {
  a = new subClassA();


  constructor(){
    this.a.incCounter(); // this works...
  }
  incCounterIndirect(){
    this.a.incCounter(); // this works....
  }
}
ko.applyBindings(new MainViewModel() );

HTML:

<a data-bind="click: $root.incCounterIndirect ">Indirect does work</a>
<a data-bind="click: $root.a.incCounter ">Direct does NOT work</a>

明らかに、「直接」ルートが機能する必要があります。つまり、データバインドからサブクラスのメソッドを直接呼び出す必要があります。それ以外の場合は、各サブクラス/メンバーの mainviewmodel でプロキシ メンバーを作成する必要があります ...

クリック ハンドラーからオブジェクト A のメンバーを呼び出すジョブを実行できるバインド プレフィックスまたはその他のトリックはどれか。

助けていただければ幸いです、ポール

4

3 に答える 3