首先,我使用的不是 Meteor 本身而是 Angular-Meteor,所以原理是一样的。我需要做的是在helper
功能上验证资源是否有效,并根据其结果做出决定。
我认为find
和findOne
集合的功能在客户端是同步的,但似乎它们不是,或者我以错误的方式做事。
我有以下代码:
this.helpers({
post() {
let _post = Posts.findOne({
_id: this.postId
});
if( typeof _post == 'undefined' )
return this.$state.go('404');
return _post;
}
});
this.postId
来自 Url 参数。当我浏览应用程序时,一切正常。但是当我刷新页面时,this.postId
被定义但Posts.find()
返回undefined
,显然,它进入 404 页面。
¿ 我该如何解决这种情况?