1つのコンポーネントから別のコンポーネントに1つの変数を渡そうとしています。これは配列であり、次のように宣言されています。継承を持たない2つのコンポーネント間で変数を渡す2
@Component({
selector: 'component1',
templateUrl: './component1.component.html',
styleUrls: ['./component1.css'],
})
export class Component1 implements OnInit{
......
columnVars = Object.keys(this.settings.columns);
......
}
私は、私の最初のコンポーネントを設定して、そのような変数を参照するように設定しました。
<table>
<thead>
<tr>
<th>Column</th>
<th>Description</th>
</tr>
</thead>
<tbody *ngFor="let col of columnVars">
<tr>
<td>{{settings.columns[col]['title']}}</td>
<td>{{settings.columns[col]['description']}}</td>
</tr>
</tbody>
</table>
第二の成分は、このようになりますと、問題の出番です。
@Component({
selector: 'component2',
templateUrl: './component2.html',
styleUrls: ['./component2.css']
})
export class Component2 extends Component1 implements OnInit {
buttonObjList = {
headendsButton: {
title: 'Back to headends',
route: '/headends',
}
};
}
私は理にかなってエラー
ERROR in /home/grady/honeybadger-mat/src/app/column-info/column-info.component.ts (9,14): Class 'ColumnInfoComponent' incorrectly extends base class 'IngestViewComponent'.
Types of property 'buttonObjList' are incompatible.
Type '{ headendsButton: { title: string; route: string; }; }' is not assignable to type '{ columnInfo: { title: string; route: string; }; }'.
Property 'columnInfo' is missing in type '{ headendsButton: { title: string; route: string; }; }'.
を取得します。ですから今私の質問は、継承なしで別のコンポーネントに変数を渡す方法か、buttonObjListのような特定の継承変数をオーバーライドする方法ですか?前もって感謝します。
編集:明確にするために、この第2のコンポーネントを最初のコンポーネントに表示する必要はありません。ですから、@inputディレクティブはこの場合私にとって恩恵を与えません。私が間違っているなら私を訂正してください。
あなたが達成しようとしていることは明確ではありません。 2つのコンポーネントはどのように関連していますか? 2つのコンポーネント間で情報を渡すことは、それらがどのように関連しているかに大きく依存します。その文脈はあなたの質問から明らかではありません。 – amal
彼らは本当に関連していません。彼らはちょうど異なる意見です。 1つのコンポーネントがテーブルを表示します。もう1つの要素は、表の各列の意味を説明しています。 – user3736114
ちょっと混乱しているので、あるコンポーネントが他のコンポーネントによって表されるテーブル上の各カラムの意味を説明していれば、何らかの方法で正しく関連づけられるべきですか?つまり、この列コンポーネントが表コンポーネントのテンプレート定義内に表示されていますか? – amal