Tracker.autorun和来自数组的订阅

时间:2016-06-09 18:01:55

标签: meteor

我使用数组中的集合注册了三个Tracker.autorun函数:[' tags',' allUsers',' userGroups']

formObj.collections.forEach(collection => {
  Tracker.autorun(() => {
    const handle = Meteor.subscribe(collection);

    if (handle.ready()) {
      dispatch(collectionIsReady(formObj, collection));

      console.log(collection);

      if (_.isEqual(formObj.collections, formObj.loadedCollections)) {
        dispatch(collectionsAreReady(formObj));
        dispatch(formIsReady(formObj));
      }
    }
  });
});

如果其中一个集合发生了更改,则执行Tracker.autorun函数,但仅执行最后一个数组项的集合名称(控制台输出:" userGroups")。我该怎么做才能获得正确的收藏品名称?

感谢您的帮助

修改 无需知道正确的集合名称。

由于正确执行的自动运行功能,我还将计算(c)传递给collectionIsReady()。

formObj.collections.forEach(collection => {
  Tracker.autorun((c) => {
    const handle = Meteor.subscribe(collection);

    if (handle.ready()) {
      dispatch(collectionIsReady(formObj, collection, c));

      if (_.isEqual(formObj.collections, formObj.loadedCollections)) {
        dispatch(collectionsAreReady(formObj));
        dispatch(formIsReady(formObj));
      }
    }
  });
});

0 个答案:

没有答案