@zagamay_ru

Как в Angular2 передать данные из одного компонента в другой?

Здравствуйте!
Пробую вторую версию ангуляра.
Вопрос о наследовании, есть основной компонент для отображения шаблона

export class App {
  name = 'Angular 2 Webpack Starter';
  url = 'https://twitter.com/AngularClass';
  guest = true;

  constructor() {

  }

  isGuest(login) {
    return this.guest = login;
  }
}


В нем отрабатывают другие компоненты через роутер, например компонент {About} как мне в этом компоненте вызвать свойство из родительского компонента {App}?

думал что объявить так будет правильно:
class About extends App {}
Но на такую конструкцию ругнулся..
Помогите разобраться.
  • Вопрос задан
  • 8421 просмотр
Решения вопроса 1
@ivanesi
можно передать в сервисе который определен в родительской компоненте.
//parent
@Component({
  //...
  providers: [SharedDataService] 
  //...
})

https://angular.io/docs/ts/latest/guide/hierarchic...
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 4
AMar4enko
@AMar4enko
В первом ангуляре это делалось через контроллеры директив или сервисы.
Во втором через сервисы или иерархический Dependency Injection - вы можете от вышестоящего компонента нижестоящему спустить нужные данные через него, поищите на офсайте доку
Ответ написан
Комментировать
miraage
@miraage
Старый прогер
Создаёте сервис, делаете его @Injectable.
Дальше уже должно быть понятно. :)
Ответ написан
Комментировать
@rinatoptimus
Попробуйте конструкцию:
import {название_родительского_компонента} from './родительский_компонент';
...
@Component({
  ...
  directives: [название_родительского_компонента]
})
Ответ написан
Комментировать
@zagamay_ru Автор вопроса
Попробовал через директиву, выдал: Unexpected directive value 'undefined' on the View of component.
Пытался через @Injectable, работает, но не наследует, изменяя свойство в родителе, свойство с дочернем компоненте не изменяется.. что-то не так делаю
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы