无法显示登录用户的名称 - angular2 -meteor

时间:2016-08-19 10:41:45

标签: node.js meteor angular

我只想显示当前登录用户的名称,但我无法使其正常工作。

我在app.component上写了这个:

import { Component } from '@angular/core';
import template from './app.component.html';
import {ROUTER_DIRECTIVES} from '@angular/router';
import {LoginButtons} from 'angular2-meteor-accounts-ui';
//import our Carousel Component
import {CSSCarouselComponent} from './imports/componenets/carousel/carousel.component';
import { InjectUser } from 'angular2-meteor-accounts-ui';

@Component({
    selector: 'app',
    template,
    directives: [ROUTER_DIRECTIVES, LoginButtons,CSSCarouselComponent]
})
@InjectUser('user')
export class AppComponent {
    user: Meteor.User;
    constructor() {
        console.log(this.user);
    }
    loginFacebook(event) {
        Meteor.loginWithFacebook({}, function(err){
            if (err) {
                throw new Meteor.Error("Facebook login failed");
            }
            console.log(Meteor.user().profile.name;);
        });
    }
}

console.log(this.user);返回undefined

console.log(Meteor.user().profile.name;);有效并给我名字,但我没有成功将其导出到html并显示。

1 个答案:

答案 0 :(得分:0)

您必须在组件中引用 Meteor ,例如let M = Meteor;。然后,您可以在html中使用{{M.user().profile.name}}

在您的代码中永远不会设置this.user,您只需定义其类。无论如何,您应始终使用Meteor.user()M.user(),因为它始终是最新的。