2016-09-25 120 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