В самом деле, raiseevent
метод, который называется должен быть в компоненте динамически добавляется. В вашем случае это находится в компоненте, который его создает.
Если вы сделаете это, метод RaiseEvent называется:
function toComponent(template, directives) {
@Component({
selector: 'fake-component',
template,directives
})
class FakeComponent {
a:any;
dom:BrowserDomAdapter;
public fakeForm: ControlGroup;
public items: QueryList<SomeComponent>;
constructor(@ViewQuery(SomeComponent)
items:QueryList<SomeComponent>) {
this.items = items;
}
raiseevent(){
alert('hi');
}
}
return FakeComponent;
}
Если вы хотите, чтобы вызвать raiseevent
метод из родительского компонента, вы можете реорганизовать FakeComponent
, как описано ниже. Это показывает, как вводить этот родительский компонент и использовать его методы.
function toComponent(template, directives) {
@Component({
selector: 'fake-component',
template,directives
})
class FakeComponent {
a:any;
dom:BrowserDomAdapter;
public fakeForm: ControlGroup;
public items: QueryList<SomeComponent>;
constructor(@ViewQuery(SomeComponent)
items:QueryList<SomeComponent>,
private comp: AppComponent) {
this.items = items;
}
}
return FakeComponent;
}
Вот новое содержание шаблона:
add() {
this.renderTemplate(`
<div id="evnt">
<button (click)="comp.raiseevent()">Destro</button>
<some-component></some-component>
</div>
`, [SomeComponent]);
}
Надеется, что это помогает вам, Thierry
Я пытаюсь передать аргумент ... При нажатии кнопки я пытаясь уничтожить этот компонент ... Я отправляю ref как аргумент, но он показывает некоторую ошибку ... Как мне передать аргумент и удалить этот компонент (мне также нужно удалить кнопку)? –
Я думаю, что это аналогичная проблема, потому что 'this.b' является родительским элементом родительского компонента, а не дочерним ... Мне было бы интересно иметь имеющуюся у вас ошибку ... –
yea ... попробовал много способов, но не успешный. В любом случае, я могу передать ref в качестве аргумента? –