Как передать переменную другому компоненту, используя сервис в angular? - PullRequest
0 голосов
/ 11 июля 2019

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

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

Это сервис с переменными

private productoAddSource = new Subject<any>();
productoSel = this.productoAddSource.asObservable();
 getProductoSeleccionado(producto:any){
    this.productoAddSource.next(producto)
    console.log("getProducto" + producto);
  }

Это мой дочерний компонент, который мне нужен, чтобы разделить переменную

addPseleccionado(form:NgForm){
    console.log(form);
    this.addproducto = form;
this.sharedService.getProductoSeleccionado(form);
    console.log("detalle producto" + this.addproducto);
addPseleccionado(form:NgForm){
    console.log(form);
    this.addproducto = form;

    this.sharedService.getProductoSeleccionado(form);
    console.log("detalle producto" + this.addproducto);

 enviarVariable(producto: any){
     this.sharedService.getProductoSeleccionado(producto)
   }

Это компонент желания, который является корзиной для покупок

this.sharedService.productoSel.subscribe(producto => this.producto = producto)

«Я ожидаю, что объект моей формы существует в моем компоненте как массив, чтобы повторить его и поместить в таблицу». "Заранее спасибо." «Выход не определен»

Ответы [ 2 ]

0 голосов
/ 12 июля 2019

вы можете напрямую подписаться на Subject (в вашем случае productoAddSource) в вашем дочернем компоненте, если вы не делаете его закрытым. проверьте документы: https://rxjs -dev.firebaseapp.com / guide / subject

0 голосов
/ 12 июля 2019

Если вы хотите просто использовать переменную в дочернем компоненте, тогда передача переменной через свойства @Input будет хорошим способом.Совместное использование данных с помощью службы хорошо, когда компоненты находятся рядом и данные не могут быть переданы.Чтобы узнать больше о свойствах ввода / вывода со ссылкой на оригинальную документацию Angular, лучше всего будет https://angular.io/guide/component-interaction.

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