0

我想在我的模板中显示所有用户的列表。我有:

//publications.js
Meteor.publish('users', function() {
    return Meteor.users.find({}, { fields: {username: 1, profile: 1} });
});

//router.js
Router.route('/users/add/:_id?', {name: 'users.add', controller: 'UserAddController'});

UserAddController = RouteController.extend({
  subscriptions: function(){
    return [ Meteor.subscribe('hospitals'), 
            Meteor.subscribe('roles'),
            Meteor.subscribe('users') ];
  },
  action: function() {
    this.render('addUser', { 
      data: function(){
        return { hospital_id : this.params._id }
      }
    });
  }
});


//client
Template.listUsers.helpers({
  users: function() {
    return Meteor.users.find({});
  }
});

但是列表只显示当前登录的用户。我已经使用Account.createUser()函数创建了一个用户列表我做错了什么?

谢谢。

4

2 回答 2

0

subscriptions您必须在挂钩中使用 this.subscribe() 订阅发布:

// a place to put your subscriptions
subscriptions: function() {
  this.subscribe('items');

  // add the subscription to the waitlist
  this.subscribe('item', this.params._id).wait();
}

或使用 waitOn:

// Subscriptions or other things we want to "wait" on. This also
// automatically uses the loading hook. That's the only difference between
// this option and the subscriptions option above.
waitOn: function () {
  return Meteor.subscribe('post', this.params._id);
}
于 2015-06-15T14:37:03.717 回答
0

默认情况下,Meteor 发布当前用户。我看到你有一个addUser模板和一个listUsers模板。问题是虽然addUser订阅了该users出版物,listUsers但不是(这当然取决于您的路由器中还有什么)。要解决此问题,请将调用更改this.render为呈现listUsers模板。然后,你的users助手应该工作了,你可以随心所欲地呈现信息。

我用我自己的应用程序(DiscoverMeteor的显微镜项目)对此进行了测试,它对我有用。希望它也适合你。如果没有,请在此处评论,如果有效,请务必接受此答案。=)

于 2015-07-08T17:33:59.807 回答