Angular 如何将数据路由器出口组件连接到HeaderComponent?

Angular 如何将数据路由器出口组件连接到HeaderComponent?,angular,Angular,我需要一些数据在路线出口组件到HeaderComponent 请查看我的下图。 您可以从共享服务发出事件,并在标题组件中订阅此事件,如: 在当前管线组件中: onEvent() { this.sharedService.changeTitle(newTitle); } 在职: titleChanged = new EventEmitter(); changeTitle(title) { this.titleChanged.emit(title); } 在标题组件中: title:

我需要一些数据在路线出口组件到HeaderComponent

请查看我的下图。


您可以从共享服务发出事件,并在标题组件中订阅此事件,如:

在当前管线组件中:

onEvent() {
  this.sharedService.changeTitle(newTitle);
}
在职:

titleChanged = new EventEmitter();

changeTitle(title) {
  this.titleChanged.emit(title);
}
在标题组件中:

 title: string = '';
 ngOnInit(){
   this.sharedService.titleChanged.subscribe(title => this.title = title);
 }

您可以从共享服务发出事件,并在标头组件中订阅此事件,如:

在当前管线组件中:

onEvent() {
  this.sharedService.changeTitle(newTitle);
}
在职:

titleChanged = new EventEmitter();

changeTitle(title) {
  this.titleChanged.emit(title);
}
在标题组件中:

 title: string = '';
 ngOnInit(){
   this.sharedService.titleChanged.subscribe(title => this.title = title);
 }
1)管理服务.ts

import {Injectable, EventEmitter} from "@angular/core";

@Injectable()
export class AdminService {
    titleChanged = new EventEmitter();

    constructor() {}

    changeTitle(title) {
        this.titleChanged.emit(title);
    }
}
import { Component } from '@angular/core';
import {ActivatedRoute} from '@angular/router';
import { AdminService } from '../common/service/admin.service';

@Component({
  selector: 'app-admin',
  //providers: [AdminService],
  template: `
   <left-menu></left-menu>
   <div class="main-panel">
      <app-header [header_title]="_header_title"></app-header>
      <div class="content">
          <div class="container-fluid">
            <div class="row">
              <router-outlet></router-outlet>
            </div>
          </div>
      </div>
    <app-footer></app-footer>
   </div>

  `
})
export class AdminComponent {

    public _header_title:string = "";
    constructor(route: ActivatedRoute,private _admin: AdminService) {
        this._admin.titleChanged.subscribe(title => this._header_title = title);
    }
}
import { Component } from '@angular/core';
import { AdminService } from '../common/service/admin.service';

@Component({
  selector: 'user-profile',
  templateUrl : `./app/user-profile/user-profile.component.html` 
})
export class UserProfileComponent {
    private username:string="Bharat Chauhan";
    constructor(private _admin: AdminService) {
        this._admin.changeTitle("User Profile");
    }
}
2)应用程序组件.ts

import {Injectable, EventEmitter} from "@angular/core";

@Injectable()
export class AdminService {
    titleChanged = new EventEmitter();

    constructor() {}

    changeTitle(title) {
        this.titleChanged.emit(title);
    }
}
import { Component } from '@angular/core';
import {ActivatedRoute} from '@angular/router';
import { AdminService } from '../common/service/admin.service';

@Component({
  selector: 'app-admin',
  //providers: [AdminService],
  template: `
   <left-menu></left-menu>
   <div class="main-panel">
      <app-header [header_title]="_header_title"></app-header>
      <div class="content">
          <div class="container-fluid">
            <div class="row">
              <router-outlet></router-outlet>
            </div>
          </div>
      </div>
    <app-footer></app-footer>
   </div>

  `
})
export class AdminComponent {

    public _header_title:string = "";
    constructor(route: ActivatedRoute,private _admin: AdminService) {
        this._admin.titleChanged.subscribe(title => this._header_title = title);
    }
}
import { Component } from '@angular/core';
import { AdminService } from '../common/service/admin.service';

@Component({
  selector: 'user-profile',
  templateUrl : `./app/user-profile/user-profile.component.html` 
})
export class UserProfileComponent {
    private username:string="Bharat Chauhan";
    constructor(private _admin: AdminService) {
        this._admin.changeTitle("User Profile");
    }
}
1)管理服务.ts

import {Injectable, EventEmitter} from "@angular/core";

@Injectable()
export class AdminService {
    titleChanged = new EventEmitter();

    constructor() {}

    changeTitle(title) {
        this.titleChanged.emit(title);
    }
}
import { Component } from '@angular/core';
import {ActivatedRoute} from '@angular/router';
import { AdminService } from '../common/service/admin.service';

@Component({
  selector: 'app-admin',
  //providers: [AdminService],
  template: `
   <left-menu></left-menu>
   <div class="main-panel">
      <app-header [header_title]="_header_title"></app-header>
      <div class="content">
          <div class="container-fluid">
            <div class="row">
              <router-outlet></router-outlet>
            </div>
          </div>
      </div>
    <app-footer></app-footer>
   </div>

  `
})
export class AdminComponent {

    public _header_title:string = "";
    constructor(route: ActivatedRoute,private _admin: AdminService) {
        this._admin.titleChanged.subscribe(title => this._header_title = title);
    }
}
import { Component } from '@angular/core';
import { AdminService } from '../common/service/admin.service';

@Component({
  selector: 'user-profile',
  templateUrl : `./app/user-profile/user-profile.component.html` 
})
export class UserProfileComponent {
    private username:string="Bharat Chauhan";
    constructor(private _admin: AdminService) {
        this._admin.changeTitle("User Profile");
    }
}
2)应用程序组件.ts

import {Injectable, EventEmitter} from "@angular/core";

@Injectable()
export class AdminService {
    titleChanged = new EventEmitter();

    constructor() {}

    changeTitle(title) {
        this.titleChanged.emit(title);
    }
}
import { Component } from '@angular/core';
import {ActivatedRoute} from '@angular/router';
import { AdminService } from '../common/service/admin.service';

@Component({
  selector: 'app-admin',
  //providers: [AdminService],
  template: `
   <left-menu></left-menu>
   <div class="main-panel">
      <app-header [header_title]="_header_title"></app-header>
      <div class="content">
          <div class="container-fluid">
            <div class="row">
              <router-outlet></router-outlet>
            </div>
          </div>
      </div>
    <app-footer></app-footer>
   </div>

  `
})
export class AdminComponent {

    public _header_title:string = "";
    constructor(route: ActivatedRoute,private _admin: AdminService) {
        this._admin.titleChanged.subscribe(title => this._header_title = title);
    }
}
import { Component } from '@angular/core';
import { AdminService } from '../common/service/admin.service';

@Component({
  selector: 'user-profile',
  templateUrl : `./app/user-profile/user-profile.component.html` 
})
export class UserProfileComponent {
    private username:string="Bharat Chauhan";
    constructor(private _admin: AdminService) {
        this._admin.changeTitle("User Profile");
    }
}

您应该使用
sharedService
。服务数据将在组件之间共享。@micronyks:我知道使用sharedService。但是,有一个问题。如何自动更改标题?您应该使用
sharedService
。服务数据将在组件之间共享。@micronyks:我知道使用sharedService。但是,有一个问题。如何自动更改我的标题?你的帖子很有用。但是,你的帖子中有一些错误。你有哪些错误?“OneEvent”只是一个示例名称,您可以从代码中标题更改的地方调用此方法……您的帖子绝对是我的解决方案。请出示我贴出的答案。我投了你的票:)你的帖子很有用。但是,你的帖子中有一些错误。你有哪些错误?“OneEvent”只是一个示例名称,您可以从代码中标题更改的地方调用此方法……您的帖子绝对是我的解决方案。请出示我贴出的答案。我投票给你的答案:):)