как привязать новые значения к переменной массива из одного компонента в другой компонент вместе с существующими данными в первом компоненте - PullRequest
0 голосов
/ 21 января 2019

у меня есть два компонента comp1 и comp2

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

мне нужно связать значение из comp2 вместе с существующими данными в переменной массивав comp1

У переменной массива в comp1 уже есть некоторые значения.

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

как связать новые значения с переменной comp1 вместе с существующими данными

Ответы [ 2 ]

0 голосов
/ 21 января 2019

Вам нужна общая служба.

1) создайте data.service.ts (простая служба)

2) в этой службе, определите переменную как BehaviorSubject

import { Injectable } from '@angular/core';
import { BehaviorSubject } from 'rxjs';

@Injectable()
export class DataService {

  private messageSource = new BehaviorSubject('default message');
  currentMessage = this.messageSource.asObservable();

  constructor() { }

  changeMessage(message: string) {
    this.messageSource.next(message)
  }

}

3) добавьте эту услугу в качестве поставщика в модуль, общий для двух компонентов (app.module.ts)

4), теперь вы можете установить переменную sared service в таких компонентах, как

this.service.changeMessage(newData);

и вы можете подписаться на значение currentMessage, чтобы получить значение, например

 this.service.currentMessage.subscribe(serviceValue => this.componentMessage = serviceValue );

Значение переменной из службы будет одинаковым для всех компонентов.

0 голосов
/ 21 января 2019

Я думаю, вы можете напрямую назначить данные в comp1.Вот так.

array1 = values;

Вместо этого сделайте так

array1.push(values);

Это добавит значения в существующий массив.

И убедитесь, что вы правильно передаете данные.

Дочерний к родителю: обмен данными через ViewChild

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