1

ここで重要な問題を更新 します。これは、Ruby オブジェクトと関連するメソッド (erb テンプレートで処理される) と、KnockoutJs などにフィードできる JSON の純粋なビューモデルとの間のインピーダンスの不一致です。製品のこの領域に必要な情報を取得し、KO を日和見的に使用するように他の領域を変更します...

KnockoutJs は初めてです。私はビューモデルをセットアップしており、このように「コメントフォーム」foreachを使用して値を表示できます

<!-- ko foreach: filteredProducts -->
  <span>id:</span>
   <span data-bind="text: id"></span>
   (...)
   <br/>
<!-- /ko -->

しかし、私がする必要があるのは、このように foreach内の配列エントリ値の 1 つを参照することです

<script> current_id = $data.id </script>

Id を ERB 経由で使用して Ruby 関数を呼び出すことができるようにします。しかし、$data はここのスクリプトには表示されません。

viewModel は表示されますが、同様の問題: スクリプト内の $index (foreach の別の KnockoutJs コンテキスト変数) の可視性。

アイデア歓迎 - マイケル

4

1 に答える 1

2

答えは、あなたができないし、すべきではないということです。$index埋め込みスクリプト内から参照することはできません。foreachまた、Knockoutブロックにスクリプトを埋め込んではいけません。結果が気に入らない可能性があります。

バインディングを使用して、ビューモデル(javascript)とビュー(html)の間で対話します。必要に応じて、カスタムバインディングを使用します。

于 2012-05-15T06:19:37.900 に答える