【问题标题】:FindOne never gets executed Meteor jsFindOne 永远不会被执行 Meteor js
【发布时间】:2017-09-26 19:52:31
【问题描述】:

我已经有一段时间了。问题是这行代码永远不会被执行let userSchool = SchoolDb.findOne({slug: Session.get('ReceivedSlug')}); 当我登录控制台时,我看到 slug 是动态的,因为它应该从数据库中提取记录。我该怎么做才对? oncreated 模板

Template.view.onCreated(function () {
    Session.set('ReceivedSlug', FlowRouter.getParam('myslug'));
    this.autorun(function () {
        Meteor.subscribe('SingleSchool', Session.get('ReceivedSlug'));
    });
});

辅助函数

singleSchool: function () {
        if (Meteor.userId()) {
            console.log('reactive this ---- ' +Session.get('ReceivedSlug'));
            let userSchool = SchoolDb.findOne({slug: Session.get('ReceivedSlug')});
            if (!userSchool) {
                Bert.alert('School not present', 'danger', 'growl-top-right');
            } else {
                console.log('school name ----' +userSchool.slug);
                return userSchool;
            }
        }   
    },

【问题讨论】:

    标签: mongodb publish-subscribe meteor-blaze


    【解决方案1】:

    能否请您检查订阅是否已获取数据。还可以在发布内部控制是否在 slug 更改时发布数据。

    使用以下代码检查订阅是否正常

    Meteor.subscribe('SingleSchool', Session.get('ReceivedSlug'), { 
        onReady: function(){
            console.log(SchoolDb.find({}).fetch());
        }
    });
    

    【讨论】:

      猜你喜欢
      • 2019-12-07
      • 2021-08-19
      • 2016-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多