Метеор: Публикация всех пользователей, не работающих без пакета автопубликации

Я хотел бы показать список всех пользователей, в моем шаблоне. Я имею:

//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() функция Что я делаю не так?

Благодарю.

2 ответа

Вы должны подписаться на публикацию, используя this.subscribe() в subscriptions крюк:

// 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);
}

По умолчанию Метеор публикует текущего пользователя. Я вижу, что у вас есть addUser шаблон и listUsers шаблон. Проблема в том, что пока addUser подписан на users публикации, listUsers нет (это будет зависеть от того, что еще у вас есть в вашем маршрутизаторе, конечно). Чтобы это исправить, измените вызов на this.render сделать listUsers шаблон. Тогда ваш users Помощник должен работать, и вы можете предоставить информацию, как вам нравится.

Я проверил это с помощью своего собственного приложения (проект Microscope от DiscoverMeteor), и оно сработало для меня. Надеюсь, это работает и для вас. Прокомментируйте здесь, если нет, и обязательно примите этот ответ, если он сработал. знак равно

Другие вопросы по тегам