私のメインページの子コンポーネントであるng-table
があります。行をクリックすると、EventEmitter
を使用してonCellClick
経由でその行の情報が送信されます。この情報を別の子コンポーネントに送信しようとしています。これはメインページのボタンがクリックされたときにポップアップするBootstrap 4モーダルの子であるボタンです。その情報の受信と操作に問題があるだけです。子コンポーネントテーブルの角度2の子コンポーネント間で@inputと@outputを使う
HTML:子コンポーネントのための
<ng-table [config]="config"
(tableChanged)="onChangeTable(config)"
(cellClicked)="onCellClick($event)"
[rows]="rows" [columns]="columns">
</ng-table>
HTML(これはメインページのHTMLに表示されます):行のデータを取得し、送信するための
<app-datatable (row)="received($event)"></app-datatable>
活字体( this.row
はEvenEmitterですdata.row
はクリックされた実際の行です):
@Output() row: EventEmitter<any> = new EventEmitter<any>();
public onCellClick(data: any): any {
let d = data.row.tDataPoint;
let i = data.row.tICCP;
let s = data.row.tStartDate;
let e = data.row.tEndDate;
let toSend:DataTable = new DataTable(d, i, s, e);
this.row.emit(toSend);
}
ブートストラップ4モーダルの子コンポーネントであるボタンのHTML:ボタンの子コンポーネントの
selector: 'deletebutton'
@Input() receivedRow:DataTable;
onClick(message:DataTable){
this.sender.emit('This is from On Click Deletebutton');
console.log("On Click Deletebutton");
console.log(this.receivedRow);
for (let entry in DPS){
if (DPS[entry].tDataPoint===message.tDataPoint){
DPS.splice(parseInt(entry),1);
}
}
}
HTML(これはで表示されます。ボタンの子コンポーネントのための
<button type="submit" class="btn" data-dismiss="modal" (click)="onClick($event)">Delete</button>
活字体モーダルのHTML)。これは実際にクリックされた行からのデータを入力として受け取るべきものです。
私onClick
方法で今
<deletebutton [receivedRow]='row'></deletebutton>
はreceivedRow
が定義されていないと言っています。私はdeletebutton
HTMLとその子コンポーネントのHTMLのonClick
関数呼び出しを持つ[receivedRow]='row'
の間の調整が欠けているように感じます。全体的に、私はちょうど行をクリックし、ボタンをクリックして削除Boostrapモーダルを開き、正しい行を削除したいと思います。モーダル内のDelete
ボタンをクリックします。明確でないコードやコードが必要な場合はお知らせください。
@Inputと@Outputを使用して、このような子コンポーネント間で実際に通信する方法はありますか? angular2で
あなたのアーキテクチャはわかりません。たぶん、図を投稿したり、詳細を述べたりします。 – Maxime
質問のメインページとブートストラップモーダルのスクリーンショットを追加しました。 'ng-table' HTMLは、子コンポーネントのHTMLにあるものです。 'app-datatable'はそのコンポーネントのセレクタなので、私は' app-datatable'タグを使ってそのコンポーネントをメインページに置きます。 Typescriptの最初のセットは、EventEmitter経由で行の情報を送信する方法です。 'button' HTMLはBootstrap Modalの中の' Delete'ボタンのHTMLです。これは私が行のデータを送信しようとしているものです。その後、Typescriptは '@ Input'に基づいて行のデータを操作しようとしています。 – Drew13
最後の 'deletebutton' HTMLは、私が実際にBootstrapモーダルの' Delete'ボタンをレンダリングするために使うHTMLです。これで問題が解決するか、詳細情報が必要な場合は、私に教えてください – Drew13