私は現在Backboneアプリケーションを作成しており、backbone.localstorageプラグインを使用してデータを保持しています。私のアプリにはソート可能なアイテムがいくつかあるので、アイテムを並べ替えるたびにlocalStorageのデータオーダーも変更されることを願っています。次回にページ全体を更新すると、ページはソートされたデータによってレンダリングされます。しかし、backbone.localstorageはその作成順序でデータを保持しているようです。誰かが私にこれについてのいくつかのアイデアを与えることができますか?Backbone.jsアプリケーションでlocalStorageのデータの順序を変更するにはどうすればよいですか?
1
A
答えて
3
モデルを明示的に表示するには、comparator
をコレクションに入れ、可能であれば各モデルの位置番号を入れます。
文字列キー/値のペアが安全に格納され、後の使用のために取り出すことができるような手段。あなたが扱っていることを意味
注キー/値ペアは、多かれ少なかれ、大きなハッシュテーブルと、それらは通常、順不同です。さらに、from the fine specification:
キーの順序はユーザーエージェント定義ですが、キーの数が変更されない限り、オブジェクト内で一貫していなければなりません。 (したがって、キーを追加または削除すると、キーの順序が変更される可能性がありますが、既存のキーの値を変更するだけでは不可能です。)
ローカルストレージ内には特定の順序はありません。特定の注文が必要な場合は、自分で手配しなければなりません。
あなたのモデルでは、配列インデックスのように動作するposition
またはindex
プロパティがモデルに含まれている可能性があります。そして、あなたのコレクションに:あなたはあなたの周りのモデルを動かすと、位置インデックスを維持する必要があると思いますが、それはすべきではない
comparator: function(a, b) {
a = a.get('position');
b = b.get('position');
if(a < b)
return -1;
else if(a > b)
return 1;
return 0;
}
:
comparator: function(m) { return m.get('position') } // or 'index'
また2つの引数comparator
機能を使用することができますひどく難しい。データをローカルストレージから取り出してコレクションに入れてから、position
でデータを注文してから、ローカルストレージにモデルを書き込んでいるときにposition
の値を割り当てることもできます。
関連する問題
- 1. postgresqlでデータの順序でテーブルを更新するにはどうすればよいですか?
- 2. カルマでテストの順序をランダム化または変更するにはどうすればよいですか?
- 3. Visual Studioのソリューションエクスプローラでファイルの順序を変更するにはどうすればよいですか?
- 4. Javaで単一のリンクリストキューの順序を変更するにはどうすればよいですか?
- 5. WPFでGridView列の順序を動的に変更するにはどうすればよいですか?
- 6. kivyでBoxLayoutの順序を変更するにはどうすればよいですか?
- 7. MDIタブのドキュメントメニューで順序を変更するにはどうすればよいですか?
- 8. Apache Tilesでタイル評価の順序を変更するにはどうすればよいですか?
- 9. DataGridViewでタブの順序を変更するにはどうすればよいですか?
- 10. vscodeのステータスバーのボタンの順序を変更するにはどうすればよいですか?
- 11. コアデータの複合主キーのフィールドの順序を変更するにはどうすればよいですか?
- 12. レスポンシブデザインのブロック要素の順序を変更するにはどうすればよいですか?
- 13. .htaccess URLのGETパラメータの順序を変更するにはどうすればよいですか?
- 14. ggplot2バーグラフのバーの順序を変更するにはどうすればよいですか?
- 15. Hudsonダッシュボードのジョブの順序を変更するにはどうすればよいですか?
- 16. woocommerceフォームのラベルと入力の順序を変更するにはどうすればよいですか?
- 17. Spark Dataframes:Java/Scalaの列の順序を変更するにはどうすればよいですか?
- 18. Springのアノテーションの実行順序を変更するにはどうすればよいですか?
- 19. GrapheneDBノードの行の順序を変更するにはどうすればよいですか?
- 20. テーブルC#の<tr>タグの順序を変更するにはどうすればよいですか?
- 21. Rails 3のイニシャライザのロード順序を変更するにはどうすればよいですか?
- 22. ベクトルの要素の順序を変更するにはどうすればよいですか?
- 23. Eloquentコレクションの結果の順序を変更するにはどうすればよいですか?
- 24. アンケートの質問の順序を変更するにはどうすればよいですか?
- 25. Google Charts:円グラフのスライスの順序を変更するにはどうすればよいですか?
- 26. XPのクイック起動ボタンの順序を変更するにはどうすればよいですか?
- 27. Julia DataFrameの列の順序を変更するにはどうすればよいですか?
- 28. 呼び出される順序を変更するにはどうすればよいですか?
- 29. HTMLタグの順序を変更するにはどうすればよいですか?
- 30. Flexbox - 列の順序を変更するにはどうすればよいですか?
したがって、モデルにインデックスを割り当て、コレクションにコンパレータを含めると、 'this.collection.fetch()'を使用してデータをロードしてビューをレンダリングするたびに、それは順序付けられた方法で表示されます自動的に、右か? – chaonextdoor
@chaonextdoor:コンパレータを含めると、コレクション上で['add'](http://documentcloud.github.com/backbone/#Collection-add)を呼び出すたびに、そのコンパレータを使用してコレクションが順序付けられます'at'オプションを' add'に指定します)。これにより、手作業で並べ替えるのはややこしいことになるので、ローカルストレージから出て行く位置について心配したいだけかもしれません。 –
'this.collection.add()'を呼び出すと、モデルは適切な場所に挿入されます。しかし、最初のページをレンダリングするために 'this.collection.fetch()'を最初から呼び出すと、ページ全体が順序どおりにならず、最初に手動でソートしてから最初のビューをレンダリングする必要があります。 – chaonextdoor