まず、私は 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 ページに移動します。
このシナリオを回避するにはどうすればよいですか?