2012-02-20 6 views
2

私は実行中の問題を示すために、http://jsfiddle.net/nair/bv3FG/19/にサンプルjsfiddleを作成しました。私は人のコレクションを持っている、私はテーブルで、各行を編集するオプションで、それらを表示します。負荷時にデータが適切に表示されます。しかし、私がモデルを編集するときは、2つの問題に直面します。Knockout JSの配列リストから選択した項目のみを表示する方法は?

  1. 私は行を編集するときに、編集テンプレートを に表示しますが、テーブルは表示しないようにしてください。私は可視性を使用して可視性を切り替えています。 これはうまくいくようです。
  2. 編集を押すと、フォームが編集するように表示されますが、選択したアイテムデータ は、テンプレートでは、選択したアイテムのデータが であるにもかかわらず表示されません。

おかげで、

答えて

6

問題は、それエラー出て、空の配列である、あなたのSelectedItemに対してすぐにバインドしようとしているということです。

に対してwithバインドを使用して、そのセクションのコンテキストを制御する方がよい場合があります。 selecteditemが空の場合、その領域はレンダリングされません。

だから、それは次のようになります。その後、あなたが結合withはそれの世話をするように、フォーム上の可視性を使用する必要はありませんhttp://jsfiddle.net/rniemeyer/ACE2d/

。保存した後、項目をnullとしてマークすると、領域は表示/バインドされなくなります。

+0

+1このシナリオでは、バインディングを使用するのが理想的です。他のオプションは、if(しかしあなたは文脈の変更を得ることができません)または可視を使用することです(しかし、それでもあなたはあまりにもいくつかを入れ子にしなければならないので、内部を束縛しようとします)。もう1つの方法は、名前付きの外部テンプレートを使用してフォームを折り返し、 "With" –

関連する問題