私は2つのコンポーネントを持っています。私はそのコンポーネント上のイベントエミッターに文字列を放出させるクリック機能を持っています。親テンプレートでは、子タグでは、単純なコンソールに単純なメッセージを記録する親コンポーネントの関数をトリガーするイベントエミッターがあります。イベントのエミッタ変数をコンソールに記録すると、子のクリック機能が動作しているのがわかりますが、親に正しく出力されない理由を理解できません。Angular2、子出力が親にバブリングしない
子コンポーネント
import {Component, OnInit, EventEmitter} from 'angular2/core';
@Component({
selector: 'team-bubbles',
templateUrl: '/static/partials/team/team-bubbles.html',
outputs: ['sendTeamDataUp'],
})
export class TeamBubblesComponent {
sendTeamDataUp:EventEmitter<string>;
constructor() {
this.sendTeamDataUp = new EventEmitter();
};
invokeTeamDataEmitter() {
console.log('Made it this far');
this.sendTeamDataUp.emit('WAKA WAKA WAKA');
}
OnInit() {
console.log('TEAM BUBBLE WORKS');
}
}
チームbubbles.html
<div class="bubble-wrapper sm" id="bubble-1" (click)="invokeTeamDataEmitter()">
<div class="team-bubble sm">
<img src="/static/images/team/guy1.jpg" alt="guy 1">
</div>
</div>
親コンポーネント
import {Component} from 'angular2/core';
import {TeamBubblesComponent} from "./teambubbles.component";
import {TeamInfoComponent} from "./team-info.component";
@Component({
selector: 'team',
templateUrl: '/static/partials/team/team.html'
})
export class TeamComponent {
receiveData(){
console.log('Output Works');
}
}
team.html
<div class="full-wrapper team-bubbles-container">
<div class="container">
<div class="row">
<team-bubbles (sendTeamDataUp)="receiveData($event)"></team-bubbles>
</div>
</div>
</div>
<div class="full-wrapper member-bio-container">
<div class="container" style="padding: 5px;">
<div class="row">
<team-info></team-info>
</div>
</div>
</div>
それは私のために動作します。それをプランナーで再現できますか? – yurzui
旧バージョンのangular2を使用しているようです。親コンポーネントの 'directives'配列に子コンポーネントを追加する必要があります。https://plnkr.co/edit/1vYZFhnPyePiWwWBYgPs?p=preview – yurzui
私はそれを試してみましょう。 Angular2のバージョンをアップグレードする必要がありますか? – JBT