2017-10-04 2 views
0

私はそれの親の配列を更新するcomponetを持っています。具体的には、加算が行われ、はソートされた全く新しい配列を作成し、元の配列を上書きします。ここでは、デバッガでRactiveを使用してアレイを上書きする方法はありますか?

var sortedUpdatedDomainNames = updatedProposedDomainNames.sort(sorts.domainName) 
// even though we sort them, after setting the value, getting it returns the unsorted items 
debugger; 

型付け:作品

sortedUpdatedDomainNames 
(4) ["example.com", "www.example.com", "swag.com", "www.swag.com"] 

OK。配列項目がソートされている

await parentComponent.set('order.proposedDomainNames', sortedUpdatedDomainNames) 

はここで最初の問題です(親ドメインの直後に、WWWを置くsorts.domainName使用):DOMは更新されませんがporoperly、いくつかの項目は、彼らがしているにもかかわらず、DOMで重複していますデータに重複しません。

しかし、parentComponent.update修正これらの重複を実行:

// Work around odd ractive bug where DOM doesn't update properly 
// Trigger an update manually using .update() 
// TODO: find proper fix! 
await parentComponent.update('order.proposedDomainNames'); 

は、彼女は第二の問題です:値は現在ソートされていないされている(だけでなく、彼らはされていない、今アルファベット順にソートしている私が欲しいもの)。

parentComponent.get('order.proposedDomainNames'); 
(4) ["example.com", "swag.com", "www.example.com", "www.swag.com"] 

Ractiveを使用してアレイを上書きするにはどうすればよいですか? 回答を提出しないでください:ractive.splice()など - 私はデータが挿入されるインデックスを事前に知らないので、配列全体を並べ替えて更新したいだけです。

+0

配列は親からマッピングされているのですか、それとも別の方法で配列を渡していますか? –

+0

'set( 'path.to.array'、ref、{shuffle:true})'もチェックしてください。スプライシングに似ていますが、配列全体に似ています。これを使用して、Ractiveの範囲外で配列をソートし、非破壊的に更新することができます。 –

+0

@ChrisReeves私は、「マッピング元」が何を意味するのかわからない。配列は親にありますが、子コンポーネントによって設定されます。それ以外の場合は、質問に言い換えてくださいできますか?ありがとう。 – mikemaccana

答えて

関連する問題