我想在我的模板中显示所有用户的列表。 我有:
//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()
函数创建了一个用户列表我做错了什么?
感谢。
答案 0 :(得分:0)
You have to subscribe to a publication using this.subscribe() in subscriptions
hook:
// a place to put your subscriptions
subscriptions: function() {
this.subscribe('items');
// add the subscription to the waitlist
this.subscribe('item', this.params._id).wait();
}
Or use 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);
}
答案 1 :(得分:0)
默认情况下,Meteor发布当前用户。我看到您有一个addUser
模板和一个listUsers
模板。问题是虽然addUser
订阅了users
出版物,但listUsers
不是(这取决于你当然在你的路由器中有什么)。要解决此问题,请将调用更改为this.render
以呈现listUsers
模板。然后,您的users
助手应该可以使用,您可以随意呈现信息。
我用自己的应用程序(来自DiscoverMeteor的显微镜项目)对此进行了测试,这对我有用。希望它也适合你。如果没有,请在此处评论,如果有效,请务必接受此答案。 =)