我只想显示当前登录用户的名称,但我无法使其正常工作。
我在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并显示。
答案 0 :(得分:0)
您必须在组件中引用 Meteor ,例如let M = Meteor;
。然后,您可以在html中使用{{M.user().profile.name}}
。
在您的代码中永远不会设置this.user
,您只需定义其类。无论如何,您应始终使用Meteor.user()
或M.user()
,因为它始终是最新的。