我有一个angular2-meteor项目,我有一个这个对象的选集:
{ name:"name1", value:4 }
我想要一个value属性数组,如:
[1, 2, 3, 4]
并且我希望集合中出现的更改在我的阵列上显示为被动。例如:如果我在我的集合上插入一个新文档,我想在我的数组值中添加一个新项目。 在我的客户端,我订阅这样的集合:
this.collectSub = MeteorObservable.subscribe('collection', options).subscribe(() => {
this.objects = MyCollection.find({}, {
sort: {
name: nameOrder
}
}).zone();
});
我尝试在this.object上使用map功能,但这不起作用。
欢迎任何帮助。感谢
答案 0 :(得分: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);
});