2016-04-30 7 views
0

私が作成し、デュランダルにウィジェットを登録して、今私は、このマークアップを使用して、他のビューでそれを使用することができる午前いる:Durandalでカスタムバインドウィジェットのメソッドを呼び出すことはできますか?

<div data-bind="MyWidget: { activationData }" /> 

私は、親ビューモデルからそのウィジェットのメソッドを呼び出すしたいと思います例:

ParentViewModel.prototype.buttonClick = function() { 

    this.myWidget.doSomething(); 

} 

親ビューモデルからこのように構成されたウィジェットにアクセスするためのきちんとした方法はありますか?

答えて

0

私は、質問を投稿するので、この問題に取り組んできた、と私は出ている最善の解決策はこれです:

  • は、親ビューに、さんは「はMyWidget」と呼んでみましょう、観測可能を追加しますモデル
  • アクティベーション中
  • を結合ウィジェットを使用して、起動時にウィジェットに空に観察を渡し、ウィジェットはビューでは、例えば、親の観測可能そのものへ

を設定し、これはあるものの

MyWidget.prototype.activate = function(activationObject) { 

    activationObject.theirWidget(this); 

} 

:モデルの定義:

this.myWidget = ko.observable(null); 

使用ウィジェットは親ビューにバインド:

<DIV data-bind="MyWidget: { theirWidget : myWidget }" /> 

ウィジェットの activateメソッド内親ビューの参照を設定します合理的な解決策、私は待って、他の誰かがACこの答えを受け入れる。

関連する問題