Отправить параметры в другой компонент - PullRequest
0 голосов
/ 24 августа 2018

Я пытаюсь отправить значение idAgreement от одного компонента к другому после навигации, это мой код:

component.ts

  onSelectAgreement(selectedAgreementList: Agreement) {debugger;
    this.selectedAgreementList = selectedAgreementList;
    if (this.selectedAgreementList) {
      console.log("row selected: " + this.selectedAgreementList.idAgreement);
      this.saveState(this.lastRequestUri, this.router.url);
      this.router.navigate(['/newagreement']);
      this.accordiService.loadAgreement(this.selectedAgreementList.idAgreement);
    }
  }

В основном (this.selectedAgreementList.idAgreement) следует отправить в компонент /newagreement.

Как я могу это сделать?

РЕДАКТИРОВАТЬ:

первый компонент:

 onSelectAgreement(selectedAgreementList: Agreement) {debugger;
    this.selectedAgreementList = selectedAgreementList;
    if (this.selectedAgreementList) {
      console.log("row selected: " + this.selectedAgreementList.idAgreement);
      this.saveState(this.lastRequestUri, this.router.url);
      this.router.navigate(['/newagreement',[this.selectedAgreementList.idAgreement]]);
    }   }

второй компонент:

  private sub: any;
  value: string;

  ngOnInit() {

    this.sub = this.route.params.subscribe(params => {
      this.value= params['idAgreement'];

   });
    this.loadAgreement(this.idAgreement);}
}

Ответы [ 2 ]

0 голосов
/ 24 августа 2018

в app-routing.module.ts, убедитесь, что ваш целевой компонент имеет этот маршрут

 import { TargetComponent }      from   './path/your.target.component';

const routes: Routes = [
{ path: 'yourpath/:idParameterToPass', component: Targetcomponent }
];

затем в вашем component.t, исходном компоненте, передайте нужный параметр.

this.router.navigate(['/newagreement/123yourid456passithere']);

Затем в целевой компонент вставьте ActivatedRoute в конструктор и получите переданное значение из снимка.

 @Component({templateUrl:'./your-target-component.html'})

class TargetComponent {
  constructor(private route: ActivatedRoute) {
const id: string = this.route.snapshot.params['idParameterToPass']

  }
}
0 голосов
/ 24 августа 2018

Теперь, когда вы используете параметры маршрута, вы можете получить значение из this.route.params, которое теперь является объектом карты.

Чтобы получить значение idAgreement, вам нужно использовать this.route.params.get('idAgreement')

Если вы используете ActivatedRoute, вы можете получить значение следующим образом:

constructor(private route: ActivatedRoute) {
  this.route.paramMap.subscribe((map) => {
    console.log("Value is", map.get("test"))
  })
}

Вот пример в StackBlitz

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