【发布时间】:2016-10-31 06:24:07
【问题描述】:
我是 Angular2 - Meteor 开发的新手。我在使用父子组件时偶然发现了一个问题。在父组件中,我让流星订阅了一个集合。
users: any;
constructor(private _zone:NgZone){
var sub = Meteor.subscribe("accounts/users");
Tracker.autorun(function() {
_zone.run(function() {
if(sub.ready()){
this.users = Meteor.users.find().fetch();
console.log(this.users);
}
});
});
}
用户集合共有 90 个用户。当应用程序最初加载时,只找到当前用户,因此控制台日志显示一个用户。
我不确定我放置的 Tracker.autorun() 和 NgZone 是否正确,但在应用加载一秒钟后,控制台日志显示所有 90 个用户的数组。我认为发生这种情况是因为订阅一开始还没有准备好。
我的子组件将获取的用户作为参数接收,例如 <sd-table [data]="users"></sd-table>。加载应用程序后,在子组件的绘制模板上只能看到一个用户。当订阅发生并且所有用户都可以访问时,是否可以更新模板?
【问题讨论】:
-
你试过使用流星组件方法吗?
-
我不这么认为,你是在说这个吗? link
标签: meteor angular components angular-meteor