まず、Meteor自体は使用せず、Angular-Meteorを使用しているので、原則は同じです。私がする必要があるのは、リソースが有効であるかどうかを確認し、その結果に基づいて決定を下すときに、helper
の機能で検証します。meteor helperでクエリ結果を検証し、404にリダイレクトする方法は?
私は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のparamsから来ています。私がアプリをナビゲートしているとき、すべての仕事。しかし、ページを更新するときにthis.postId
が定義されていますが、Posts.find()
はundefined
を返し、明らかに404ページに移動します。
¿このシナリオでは、どうすれば回避できますか?
これは正しい答えです。ヘルパーコードをhandle.ready()にラップすると、常にデータが準備されていることを確認できます。ありがとうございました。 – Brian