2016-11-15 12 views
0

私はangular2-流星のプロジェクトを持って、私はこのオブジェクトのcolecctionあります更新配列の値は、反応的

{ name:"name1", value:4 } 

をし、私は次のように値プロパティの配列をしたい:

[1, 2, 3, 4] 

と私がしたいですコレクションで作成された変更は、私のアレイ上で反応的に現れます。たとえば、私がコレクションに新しい文書を挿入すると、値の配列に新しい項目が必要になります。私のクライアント側で は、私はこのようなこのコレクションを購読する:

this.collectSub = MeteorObservable.subscribe('collection', options).subscribe(() => { 
    this.objects = MyCollection.find({}, { 
     sort: { 
     name: nameOrder 
     } 
    }).zone(); 
    }); 

は私がthis.object上のマップ機能を使用しようとするが、これはいけない仕事。

助けを歓迎します。あなたはこの試してみるのおかげ

答えて

0

this.collectSub = MeteorObservable.subscribe('collection', options).subscribe(() => { 
    this.array = MyCollection.find({}, { 
     sort: { 
     name: nameOrder 
     } 
    }).map((item) => item.value).zone(); 
    }); 

を??

あなたはこのようにマップを使用することができ、カーソルの上にマップを使用しない場合:

let collectionMock = [{name:"name1", value:1},{name:"name2", value:2},{name:"name3", value:3},{name:"name1", value:4}]; 
let result = collectionMock.map((item) => item.value); 

私は本当に、角道を知らないが、「this.objects」である場合、私は思いますReactiveVarを使用すると、Tracker.autorunで地図の実行をラップすることができます。

Tracker.autorun(() => { 
    this.resultArray = this.objects.map((item) => item.value);  
    }); 
関連する問題