this.xxx.emit()无法与Angular 4中的Parent组件通信

时间:2017-06-28 21:32:00

标签: angular typescript angular2-template

Hello Fellow Programmers, 我是Angular 4的新手。我在Angular 4中遇到了一个典型的子父交互案例。我有一个子组件(uw-post-feed.component)和父组件(uw-board-page.component),我在那里发出一些数据我的父母应该听的,我已经定义了一个简单的函数和一个console.log供我父母监听,我的控制台没有显示任何错误,但是父组件没有监听子组件正在抛出它。 我的儿童组件看起来像这样。

这些是我的步骤:

  1. 导入输出和事件发射器
  2. import { Component, Output, EventEmitter, OnInit } from '@angular/core';

    uw-post-feed.component.html(子组件)看起来像这样

    <button (click) = "hitIT()">test button</button>
    
    1. 在uw-post-feed.component.ts(子组件打样文件)中定义输出装饰器:
    2. 导出类UwPostFeedComponent扩展FrPostFeedComponent实现OnInit {

        @Output() pullExtraPosts:EventEmitter<string> = new EventEmitter<string>();
      
        constructor() {
          super();
        }
      
        hitIT(){
       console.log('reacxhed');
       this.pullExtraPosts.emit('my emitted data');
       }
      }
      

      3.单击按钮时,触发hitIT()函数。

      1. 在我的父组件HTML文件中:
      2. &LT; uw-post-feed (pullExtraPosts)="extraPosts($event)"></uw-post-feed>{{childEvent}}

        1. 在我的父组件TS文件中,将执行pullExtraPosts的操作:

          extraPosts(data):void { console.log('点击'); console.log('event',data); }

        2. 现在我也尝试调试代码,但由于某种原因,调试器没有跨越我this.pullExtraPosts.emit('my emitted data');可能的原因,这就是停止引发的extraPosts()可能是我对父组件和子组件的绑定。在我的第4步中是否存在我做错的事情。 欢迎提出任何建议或帮助。 提前谢谢。

0 个答案:

没有答案