2

ember.js RC5 では、ember オブジェクトの配列内の 2 つの要素を次のように置き換えることができました

appointments.replace(starting-index, number-of-elements-to-remove);

しかし、今日では、1.0 より前のように要素を実際に「つなぎ合わせる」ことはありません。

それをハックして自分で配列をスプライスしようとすると、何もしません(エラーもありません)

[].concat(appointments).splice(starting-index, number-of-elements-to-remove);

1.0 の時点で、ember オブジェクトのリストから要素を削除/置換する方法を知っている人はいますか?

アップデート

ember インスペクターはモデル タイプを DS.RecordArray として表示します (最新の ember-data 1.0 ベータ 3 を使用)

removeAt を試しましたが、悲しいことにまだ機能しません

これは、アプリで配列を作成する方法です

var appointments = self.store.all('appointment');
4

2 に答える 2

2

removeAt代わりに使用しないのはなぜですか?

必要な署名と同じですremoveAt(start, length)

ここを参照してください http://emberjs.com/api/classes/Ember.ArrayController.html#method_removeAt

それが役に立てば幸い。

于 2013-10-05T15:51:50.890 に答える
1

それは間違いなくまだ機能します。それは本当に残り火の配列ですか? それとも、これは Ember Data RecordArray ですか?

http://emberjs.jsbin.com/aKonIk/1/edit

ああ、本当の問題は store.all です。フィルタリングされたレコード配列です。Filtered Record Array の特別な特性の 1 つは、それらがライブであることです。つまり、最新の状態に保たれます。フィルタリングされた RecordArray:

** 型とフィルター関数を受け取り、新しいレコードがストアに読み込まれるか、ローカルで作成されると、最新の状態を維持するライブ RecordArray を返します。

つまり、レコードを削除すると、おそらく再挿入されます。

これをテストしますが、ストア内の最新のレコードで常に最新の状態に保たれると確信しているため、レコードを別の配列にコピーするか、ストアからレコードを削除する必要があります.

アップデート

それはまだうまくいくようです(少なくとも以下の単純な例では)

http://emberjs.jsbin.com/uHiCAc/3/edit

于 2013-10-05T15:52:02.880 に答える