无限更新数组值

时间:2016-11-15 05:30:53

标签: angular meteor angular-meteor

我有一个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功能,但这不起作用。

欢迎任何帮助。感谢

1 个答案:

答案 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);    
    });