它是一个文本区域,用于提交登录操作后将在主页中显示的文本。 我的意思是,管理员将通过此表单编写并提交消息,然后将显示给用户。
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;
并在主页中显示:
<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;
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;
这肯定不起作用,我也不知道我在做什么导致正确的方式。 有人可以帮我吗?
P.S。我用谷歌搜索但无法在任何地方找到满意的答案
答案 0 :(得分:0)
跟随曲折:
构建一个服务,当您单击NewsLetterComponent中的Submit-按钮时,会将消息发送到服务器。
服务器存储此消息。
为您的主页创建另一个服务,该服务在登录后向服务器发送请求以获取最新消息。
这两个服务都是独立的,您EventEmitter()
中的NewsletterComponent
与此无关!