【发布时间】:2017-09-23 05:05:37
【问题描述】:
我对 MeteorJS 完全陌生,只是看演示并四处寻找。我可能只是错过了一些非常基本的东西。 我正在使用带有 angular-ui-router 的流星。如果我从将数据加载到控制器的状态开始,我会遇到问题,因为 DDP 尚未初始化。这与Meteor: How can I tell when the database is ready?中描述的类似
路由配置的相关部分:
resolve: {
location: ($stateParams) => {
console.log('find', $stateParams);
let handle = setInterval(function () {
console.log(Meteor.status().connected, Meteor.status().status);
console.log( !!Locations.findOne({code: $stateParams.code}) ? 'found' : 'not found' );
}, 100);
setTimeout(function () {
clearInterval(handle);
}, 2000);
console.log(Meteor.status().connected, Meteor.status().status);
return Locations.findOne({code: $stateParams.code});
}
}
输出是
false "connecting"
false "connecting"
not found
true "connected"
not found
true "connected"
not found
true "connected"
found
true "connected"
found
我的问题是: 我是否正确理解这里的问题是,要使事情按预期工作,它们必须按以下顺序发生:
- 网络套接字连接已启动
- 网络套接字连接已准备就绪
- minimongo 已刷新
- collection.findOne
和 4. 在 3 之前运行? 如果是,建议的解决方法是什么?
【问题讨论】:
标签: javascript meteor angular-ui-router