Публикация пользователю, если он вошел в систему
Я пишу проект meteor-angular2 с пакетом учетных записей-паролей.
Я пытаюсь выяснить, вошел ли пользователь в систему и опубликовал ли он контент.
это мой машинописный код:
import {Meteor} from 'meteor/meteor';
import {RoomsCollection} from "../collections/rooms";
Meteor.publish('rooms',()=>{
if (!this.userId) {
return null;
} else {
return RoomsCollection.find();
}
});
как вы видите, я использую this.userId
но похоже что this
не определено
это ошибка:
TypeError: Cannot read property 'userId' of undefined
Я не совсем понимаю, как анонимная функция может иметь this.userId
Я на самом деле читаю книгу "Ты первое приложение метеора" с 2014 года. Так что, может быть, они где-то ломают перемены... или я что-то упускаю.
Я новичок в Метеоре, поэтому любая информация по этому вопросу будет принята с благодарностью.
1 ответ
В вашем коде у вас есть:
()=>{
if (!this.userId) {
Не используйте функцию стрелки, если хотите this
быть управляемым вызывающим абонентом! Вместо этого сделайте:
function() {
if (!this.userId) {
Больше
https://basarat.gitbooks.io/typescript/content/docs/arrow-functions.html