0

accounts-password パッケージを使用して 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年に出版された「You First Meteor Application」という本を実際に読んでいます.

私は Meteor を初めて使用するので、この問題に関する情報をいただければ幸いです。

4

1 に答える 1

2

コードには次のものがあります。

()=>{
    if (!this.userId) {

this発信者に動かされたい場合は、アロー関数を使用しないでください! 代わりに次のようにします。

function() {
    if (!this.userId) {

もっと

https://basarat.gitbooks.io/typescript/content/docs/arrow-functions.html

于 2016-04-28T05:47:05.927 に答える