Angular2 - 组件

时间:2016-11-16 11:48:49

标签: angular angular2-routing angular2-template angular2-services

app component.ts

import { Component,Input } from '@angular/core';

    @Component({
      selector: 'app-root',
      templateUrl: `
      <app-navigation></app-navigation>
      <router-outlet></router-outlet>`,
    })
    export class AppComponent {


      constructor( ) {
      }



    }

然后这个组件()通过路由动态加载以显示广告,所以我实际上并没有在组件旁边声明它,我理解如何使用事件发射器传递输入和输出..更多关于此结尾:

import { Component, OnInit, Output, EventEmitter } from '@angular/core';


@Component({
  selector: 'app-ad-page',
  template: `
            <a (notify)="onNotify($event)">CLICKME</a>
  `
})

export class ListAdvertsComponent implements OnInit {

    @Output() notify: EventEmitter<string> = new EventEmitter<string>();

    onClick() {
      this.notify.emit('Click from parralel component');
    }

    constructor(  ) {

    }

    ngOnInit() {
    }

}

最后是app.component模板中声明的组件

  import { Component, OnInit, Input } from '@angular/core';
  import { AngularFire, AuthProviders, FirebaseListObservable } from 'angularfire2';
  import { Router } from '@angular/router';

  @Component({
    selector: 'app-navigation',
    template: `
          <header class="mast-head">
          </header>
    `,
  })
  export class NavigationComponent  {


    onNotify(message:string):void {
      alert(message);
    }

    constructor( ) {

    }



  }

所以我知道你可以通过用这样的东西来修改选择器来将值传递给app-navigation但是我实际上并没有将这个选择器放在模板中(当用户点击广告页面时它会动态加载到dom中那么如何才能将变量传递出去呢?非常坚持这一点,这不是我第一次在angular2中遇到它所以我很想听听人们如何做这种高级输入输出的东西

0 个答案:

没有答案