私はStackOverflowで提案されている別のメソッドを使用しようとしましたが、以下の作業を行うことはできません。角2親から子コンポーネントメソッドを呼び出す
私はParentComponentに入れ子のChildComponentを持っています。
ここでは、親のHTML:私は親の一つに子コンポーネントをインポートした
<div> ... <div>
<span *ngIf="value" class="option-button cursor-pointer" [attr.modelURL]="value"
(click)="$event.stopPropagation();getParts(assemblyLibrary)">
<i class="fa fa-cube"></i>
</span>
<child-component></child-component>
はもちろん、:親コンポーネントに
import { SharedModule } from '../../shared'; //child declaration is inside here
、私は以下のコードを実装しています:
import { child-component } from '../../../child-component';
@Component({
selector: 'parent-component',
templateUrl: './parent-component.html',
changeDetection: ChangeDetectionStrategy.OnPush
})
export class ParentComponent implements OnChanges, OnInit {
...
@ViewChild('ChildComponent') childComponent;
openDialog(filesToLoad) {
this.childComponent.openDialog(filesToLoad);
}
getParts(value) {
this.filesToLoad = [];
... code to populate files to load
this.openDialog(this.filesToLoad);
}}
}
私がHTで宣言されたをクリックしてgetParts(値)を呼び出すと、 ML以下のエラーが表示されます:
VM21157:55 EXCEPTION: Cannot read property 'openDialog' of undefined
多くのユーザーが提案しているこのアプローチには何が問題なのですか?
親愛なるechonaxには、他に何かがあるはずです。私は、提案されたコードを修正して、同じエラーを与えています。 – Dino
@Dinoはあなたの質問を編集した方法で更新できますか?大文字/小文字の単語には注意してください。 – echonax
あなたは星のエコーナックスですが、それは確かに大文字/小文字の問題でした。私は数百万回のコードに行きました... – Dino