2016-09-07 1 views
0

ボタンをクリックするとモーダルダイアログが開きます。ボタンのクリックでKnockout.jsモーダルダイアログ - ビューモールドの要素をポップアップに渡す

<input data-bind="click: review" class="button" type="button" value="review" /> 

:以下

$('#divModal').dialog("open"); 

は私がモーダルダイアログを呼び出すために私のdocument.readyを持っているコードです。

$('#divModal').dialog({ 
      autoOpen: false, 
      modal: true, 
      width: 400, 
      height: 700, 
      buttons: { 
       Close: function() { 
        $(this).dialog("close"); 
       } 
      } 
     }); 

私の適用バインディングでは、私は観測可能な配列のすべての値を持っています。 私は自分のフォームにこれらの値をバインドしています。 モーダルポップアップに同じ値を渡したいと思います。

私はHTMLに以下のコードを試みた:

<div id="divModal"> 
      <section data-bind="visible: myCondition() === 'Readers'"> 
       <div>Readers List Goes here</div> 
      </section> 
      <section data-bind="visible: myCondition() === 'Writers'"> 
       <div>Writers List Goes Here</div> 
      </section> 
      <section data-bind="visible: myCondition() === 'Others'"> 
       <div>Others List goes here</div> 
      </section> 

</div> 

myConditionが観察アレイです。

私はその値をhtmlで表示することができます。 "Apply Bindigs"がこれを処理します。

私はです。は、その値をモーダルダイアログに表示できません。

私は、このモーダルダイアログに渡したい他の要素をたくさん持っています。

モーダルダイアログが開いたときに関数を呼び出すと、すべての値をこの関数に渡すことができますか?

誰でも私を助けてくれますか?

ありがとうございます!

+2

DOM操作はバインディングハンドラで行う必要があります。ブートストラップモーダルバインディングハンドラについては、http://stackoverflow.com/a/22707080/392102を参照してください。 –

+0

私は更新/編集する必要はありません。私はちょうどポップアップで私のページ全体の概要をディスパッチしたい。プレビューのようなもの。ポップアップを開くと、同じhtmlのデータが表示されます。 – user2598808

+0

モーダルを開くのはDOM操作です。 –

答えて

0

ノックアウトでは、ViewModelはビューについて知ってはいけません。 ViewModelは、アプリケーションの状態を表す純粋なデータ構造であり、KnockoutはViewがそれと同期していることを保証します。 「モーダルポップアップに値を渡す」という概念は根本的に誤っています。あなたのモーダルの状態(それが表示するデータと開いている/閉じているデータ)は、あなたのモデルで表現されるべきです。ダイアログを開くことは、オブザーバブルを設定することです。 binding handler(これはKnockoutの拡張であり、ViewModelの一部ではありません)は、関連するDOM操作を処理します。

これを念頭に置いて、問題は「私のViewModelにモーダルが反映されている部分にデータを渡すにはどうすればいいですか? ViewModelをどのようにセットアップしたかを見ていなくても、答えは不可能です。別のViewModelを作成し、postboxのようなコミュニケーションが必要なのかもしれません。モーダルがcomponentで、paramsに設定するだけです。

+0

ロイJ - 詳細な説明をいただきありがとうございます。私は学習段階にあり、これは本当に役立ちます。私はKO.JSでテンプレートを使用し、私のビューモデルを変更しました。 – user2598808

関連する問題