登录后显示消息 - Angular 5

时间:2018-05-23 17:57:22

标签: typescript angular5 messages

你好/晚上好 我是打字稿和角色5的新手,我想创建一个服务,在每次登录后为用户显示一条消息。这就是我所做的:

它是一个文本区域,用于提交登录操作后将在主页中显示的文本。 我的意思是,管理员将通过此表单编写并提交消息,然后将显示给用户。



export class NewsLetterComponent implements OnInit {
  @Output() onNewsText = new EventEmitter<string>();

  newsText: string;
  constructor(private _router: Router) { }

  ngOnInit() { 
    this.newsText = null;
  }

  onclick(newsText: string) {
    this.newsText;
    this.onNewsText.emit(newsText);
 
  }
&#13;
<div class="container-fluid" >
<form>
     <div class="form-group">
    <textarea #newsText class="form-control"  rows="3"></textarea>
  </div>
   <button type="submit" (click)="onclick(newsText.value)"class="btn btn-primary pull-right">Publish</button>
</form>
</div>
&#13;
&#13;
&#13;

并在主页中显示:

&#13;
&#13;
<header [user]="user"  (logout)="logout()"> Loading...</header>
 <p-messages #newsletter [(value)]="newsletterText"></p-messages> 
<content class="admin-page">
<sidenav></sidenav> 
<router-outlet></router-outlet>
<content>
&#13;
&#13;
&#13;

&#13;
&#13;
export class AdminPageComponent implements OnInit, OnChanges {
@ViewChild('newsletterComponenet') newsletterComponenet: NewsLetterComponent;
@Input('newsletterText') newsletterText: String;

//the rest of the code *

  ngOnChanges() {
    if (this.newsletterText && this.newsletterText.length) {
       this.msgs.push({ severity: 'info', summary: this.newsletterText });
    }
  }
&#13;
&#13;
&#13;

这肯定不起作用,我也不知道我在做什么导致正确的方式。 有人可以帮我吗?

P.S。我用谷歌搜索但无法在任何地方找到满意的答案

1 个答案:

答案 0 :(得分:0)

跟随曲折:

  1. 构建一个服务,当您单击NewsLetterComponent中的Submit-按钮时,会将消息发送到服务器。

  2. 服务器存储此消息。

  3. 为您的主页创建另一个服务,该服务在登录后向服务器发送请求以获取最新消息。

这两个服务都是独立的,您EventEmitter()中的NewsletterComponent与此无关!