0

Backbone.js の調査を開始しましたが、todo リスト内の不完全なイベントに対してハイライト モードを実装する方法を理解するのに苦労しているようです。

jsFiddle .

各 todo アイテムには、そのモデルcompleted属性に対応するチェックボックスがあります。

モデルの属性が. _ このモードを切り替えるようにしたかったので、1 回のクリックでそれらが強調表示され、次のクリックですべての強調表示が削除されました。licompletedfalse

これらの不完全なアイテムを返すために、モデルのコレクションにフィルターを作成しました。これなら使えると思ったのですが、どうしようか迷ってしまいました。

モデルに呼び出される別の属性を追加したくありませんでした。highlightedこれは、その属性から推測できcompleted、その視覚的表現のためだけに存在するためです。

また、 liveである必要があるため、ハイライト モードをオンにして新しい要素を追加すると、それらがハイライトされるはずです。

これどうやってするの?

4

3 に答える 3

1

内に作成する のListViewリストを保持してください。あなたの ItemViewsは DOM を表し、スタイルシートで見たものに基づいて、クラスを切り替えたい場所です。ItemViews にメソッドを公開させ、それを から呼び出します。ItemViewappendItem<LI>highlightedhighlightIfIncompleteListView.getIncompleted

更新されたフィドルは次のとおりです: http://jsfiddle.net/PnSPH/2/

于 2012-04-17T05:56:40.303 に答える
1

HTML階層に一致するようにCSSを構成し、モデルの状態を常に更新する場合、同期の問題について心配する必要はありません: http://jsfiddle.net/PnSPH/5

このフィドルはチェックボックスの状態を処理します: http://jsfiddle.net/PnSPH/6/

別の方法は、 を持つだけに固執すること.render()ですが、テンプレートにclasscheckedステータスを処理させます

于 2012-04-17T07:20:05.897 に答える
0

collection.getIncomplete は必要ありません...

http://jsfiddle.net/7nX4S/1/

于 2012-04-17T06:07:26.093 に答える