0

knockout.js を使用したいと思っていましたが、実際には必要ありませんでした。しかし、私は新しい画面を構築していて、jquery と言うよりも、knockout.js でやろうとする価値があるかどうか疑問に思っています。

ここに画像の説明を入力

これがGoogleカレンダーの繰り返し予約画面。今私がやろうとしていることは、おそらくチェックボックス、ドロップダウンリスト、ラジオボタンにかなり似ています。

それぞれの選択は要約部分に影響します。したがって、「F」のチェックを外すと、概要が更新されます。

ノックアウトを使用すると、要約部分を簡単に作成できますか? それとも、彼らは私を助けることができる何か他のものですか?

4

2 に答える 2

1

これは、Knockout.js でできることです。KO は必ずしも jQuery の代わりになるとは想定されていませんが、モデルとビューのバインディング (つまり VMMV) を支援するためのより高いレベルのレイヤーです。jQuery は依然としてアニメーションに最適であり、最も重要なのは AJAX 呼び出しです。何をしているかにもよりますが、KO と jQuery は非常にうまくやっていくことができます。

KOは理解するのが難しいかもしれませんが、一度理解すれば、それは非常に素晴らしく、特定のことを非常に簡単にします. たとえば、曜日をクリックして表示するセクションだけに取り組みました。

http://codepen.io/CWSpear/pen/IbkvJ

何もチェックされていない場合は何も表示されませんが、チェックを開始するとすぐに、チェックされた日が表示されます (つまりWeekly on Thursday)。

JavaScript はほんの数行です。魔法はバインディングです:

各入力にはdata-bind="checked: days"属性があります。つまり、それらがチェックされるとdays、ViewModel の変数に自動的に追加されますko.observeableArray。つまり、これらのチェックボックスを監視していて、変更があるとすぐに、それに依存するものすべてに通知します。

結局のところ、これは(計算可能なオブザーバブルである)summary変数です。ko.computable属性があります: data-bind="text: summary, visible: days().length > 0". これは、daysが空でない場合にのみ表示されることを意味し、テキストは JavaScript で「[リストのdays]に毎週」として定義されています。

于 2012-10-09T22:54:05.337 に答える
0

私は Knockout をさまざまなプロジェクトで約 18 か月間使用しています。私の経験では、Knockout は動作をフォームの状態に関連付け、最終的にそれらのフォームをサーバーにダンプするのに非常に役立ちます。

私の意見では、ノックアウトの大きな欠点は次のとおりです。

  • ページ/ビュー モデルが大きくなるにつれて、クライアントのパフォーマンスの問題が発生します。
  • クライアントにネットワーク/AJAX レイヤーの組み込みサポートがない。
  • 少しセットアップ/学習が必要で、JS アセットのフットプリントは小さくありません。

この使用例では、最初の 2 つに対して特に脆弱ではありません。あなたは3番目かもしれませんが、すでに他の場所でKnockoutを使用している場合は、それを試してみてください.

于 2012-10-09T23:22:55.010 に答える