-2
forループを使用していて、@ Inputイベントエミッタを使用して他のコンポーネントにデータを送信したいとします。 しかし、問題は、コンポーネントテンプレートの最後の値しか受け取っていないことです。forループからデータを送信する方法
助けを必要とします。
親コンポーネントTS
import { Component, OnInit, Input, ViewEncapsulation } from '@angular/core';
@Component(
{
selector : 'parent-component',
templateUrl : './parent.component.html',
}
)
export class ParentComponent implements OnInit {
public data;
constructor() {
}
getData(){
for (let i = 1; i <= i; i++) {
this.data = i;
}
}
}
親コンポーネントテンプレート
<child-component [data]="data"></child-component>
チャイルドコンポーネントTS
import { Component, OnInit, ViewChild, Input, Output, EventEmitter, OnChanges, SimpleChanges } from '@angular/core';
@Component({
selector: 'child-component',
templateUrl: './child-component.html'
})
export class ChildComponent implements OnInit, OnChanges {
@Input()
data;
constructor() { }
ngOnChanges(changes: SimpleChanges) {
// i am receiving a value 1,2, 3...10
}
}
チャイルドコンポーネントテンプレート
<div>{{data}}</div>
私は、子コンポーネントに反映されていない子コンポーネントに表示する必要がある子コンポーネントのデータを取得するために、親コンポーネントのループを使用しています。 お勧めします。
あなたがすでに試みたことをお見せください。 – Jordumus
現在どのように送信しようとしていますか? –
親コンポーネントからの '@ Input'を使用して、forループの値を更新し、子コンポーネントで受信します。このデータテンプレートはテンプレートの '{{data}}'に10個しか表示されていませんが、ngOnChanges()フックでは更新された値が表示されます – Vaibhav