2016-09-25 36 views
0

我想發出一個簡單的事件,我不能得到它的工作。Angular2 EventEmitter不工作,沒有錯誤

import {Component, Input, Output, EventEmitter} from '@angular/core' 
import {MenuService} from "./menu.service"; 


    @Component({ 
     selector:'side-menu', 
     templateUrl:'component.html', 
    }) 

    export class SideMenuComponent { 

     @Output() pinnedChange:EventEmitter<any> = new EventEmitter(); 

     //Show and Hide the Detail Pane 
     detailPanePinned = false; 
     detailPaneVisible = false; 

     pinMenuClick(){ 
      this.detailPanePinned = !this.detailPanePinned; 
      this.detailPaneVisible = !this.detailPaneVisible; 

      this.pinnedChange.emit({ 
       detailPanePinned: this.detailPanePinned 
      }) 

     } 

    } 

下面是HTML中我想聽聽它

<side-menu class="side-block pull-left"> 

</side-menu> 
<design-pane (change)="onPinnedChange($event)"></design-pane> 
<side-menu class="side-block pull-right"> 
</side-menu> 

這裏是上述

import {Component} from '@angular/core' 

@Component({ 
    selector:'builder-layout', 
    templateUrl:'app/builder/layout/layout.component.html' 
}) 

export class BuilderLayoutComponent { 

    onPinnedChange($event){ 
     console.log($event) 
    } 
} 

爲HTML組件當我點擊pinMenuClick我沒有得到任何錯誤。它只是不打我的onPinnedChange()

我現在用的是2.0.0 Angular2官方

回答

3

我認爲,只有發射事件可以聽它,你的情況,側面菜單組件。所以你需要做這樣的事情:

<side-menu (pinnedChange)="onPinnedChange($event)"></side-menu> 
+0

哇。那工作.. Thx – Rob