Почему Angular 4 говорит что не знает атрибут компонента, не смотря на то, что он указан?
Нашёл ответ, проблема не в атрибуте, а в том, что Angular не компилировался с данным компонентом вообще, оказывается компонент может быть размещён только в одном модуле в принципе и если нужно использовать один компонент в разных, то его нужно вынести в свой собственный модуль, а затем подключить в тех, где он будет использоваться.persons.module.tsimport { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';

import { PersonsComponent } from "./persons.component";

@NgModule({
    imports: [
        CommonModule
    ],
    declarations: [
        PersonsComponent
    ],
    exports: [
        CommonModule, PersonsComponent
    ]
})
export class PersonsModule { }
Как-то я невнимательно читал документацию
Может стоит передавать данные в компонент через Subject?
То есть пусть будет message.service умеющий только sendMessage, getMessage, clearMessage глобальный для всех модулей.
А конкретно для вашего модуля и-компонента пусть будет persons.service, создающий новые экземпляры классов message.service. В одном компоненте мы делаем sendMessage в другом get Message.subscribe
https://bitbucket.org/furrya_black/cake-shop
Для примера, как я это делал.
В папке app/services сервис message.service
Посмотрите как он используется. Там же есть loader.service и в папке app/containers. Для каждого узконаправленного message сервиса создается новый инстанс message сервиса.