Прежде всего, я не использую Метеор сам по себе, а Angular-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