Meteor angular-ui-router路由逻辑

Meteor angular-ui-router routing logic

您好,当用户被定向到一个页面时,我想执行逻辑检查以查看集合中是否有任何条目缺少属性,如果有则重定向用户。这是我对代码外观的一些想法,但我看不到让订阅在 routes.js 文件

中工作

routes.js

.state('pendingVisits', {
    url: '/pendingVisits',
    templateUrl: ()=> {
      if (Meteor.isCordova) {
        return '/packages/visitry-mobile/client/visits/pending-visits/pending-visits.html';
      } else {
        return '/packages/visitry-browser/client/visits/pending-visits/pending-visits.html';
      }
    },
    controller: 'pendingVisitsCtrl as pendingVisits',
    resolve:{
      feedback: function($location){
        Meteor.subscribe('visits');
        var v = Visits.findOne({feedbackId});
        if(v){
          $location.url('/visits/'+v._id+'/feedback');
        }
      }
    }
});

基本上我正在尝试做一些类似于 Uber UI 的事情,如果上次活动没有反馈,我会显示反馈页面。谢谢您的帮助。如果您需要更多代码或信息,请告诉我。

我可以用 Tracker.autorun() 解决这个问题这是我使用的解决方案:

resolve:{
  feedback:function($location){
    const visits = Meteor.subscribe('visits');
    Tracker.autorun(()=>{
      const isReady = visits.ready();
      var visitNeedingFeedback = Visits.findOne({feedbackId:null})
      if(isReady && visitNeedingFeedback){
        console.log("Yes lets go to feedbacks");
        $location.url('/feedback/'+ visitNeedingFeedback._id);
      }else{
        console.log(`Visits data is ${isReady ? 'ready' : 'not ready'}`)
      }
    })
  }
}