Angular: Как вызвать метод компонента из другого компонента в других модулях - PullRequest
0 голосов
/ 03 мая 2018

Я пытаюсь вызвать метод A_Component, принадлежащий A_Module, из B_Component, принадлежащего B_Module, и получаю следующую ошибку, как только я добавляю A_Component в качестве параметра в конструктор B_Component:

NullInjectorError: Нет поставщика для A_Component!

РЕДАКТИРОВАТЬ: эти два компонента не родительский / дочерний. Их модули импортированы app.module

(Код кратко изложен)

A_Module:

import { A_Component } from '...'

@NgModule({
    imports: [...],
    declarations: [A_Component],
    exports: [A_Component],
})

export class A_Module { }

B_Module:

import { A_Module } from '...'
import { B_Component } from '...'

@NgModule({
    imports: [A_Module],
    declarations: [B_Component]
})

export class B_Module { }

A_Component:

export class A_Component {
    someMethod() {...}
}

B_Component:

import { A_Component } from '...'

export class B_Component {

    constructor(public a_Component: A_Component)) {} //this param causes error

    callSomeMethod() {
        this.a_Component.someMethod();
    }
}

Разве это не то, как вызывать компонентные методы между модулями? Это единственный способ сделать это с помощью службы?

1 Ответ

0 голосов
/ 03 мая 2018

Пожалуйста, обратитесь к взаимодействию компонентов официальной документации.

Вы можете вызывать только методы компонента, объявленного внутри компонента, используя ViewChild .

Если вы хотите, чтобы два разных компонента взаимодействовали друг с другом - это нужно сделать через общую службу .

Обновлено после очков от @ diopside

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...