Отправить JSON из одного компонента в другой, используя маршрутизацию, а не отображать в URL? - PullRequest
0 голосов
/ 01 июня 2018

Я пытаюсь передать JSON при маршрутизации. Вот мой код

app.route.ts

 {path: 'calculator', component: CalculatorComponent,data : {some_data : null}},

и мой код для маршрутизации данных:

 this.router.navigate(['/home/calculator',  {some_data:this.loanData}]);

и в calculator.ts код метода oninit выглядит следующим образом

import {ActivatedRoute} from '@angular/router';

    constructor(private route: ActivatedRoute) {}
    sub
    ngOnInit() {
        this.sub = this.route
            .data
            .subscribe(v => console.log(v));
    }

вывод выглядит следующим образом

{"some_data": null}

проблема в том, что он не показывает JSON, я прошел от первого компонента TS

Ответы [ 2 ]

0 голосов
/ 01 июня 2018
    Is there a reason you want to navigate by url why not use the navigate method like this:

    in RouteConf: { path: '/path/:data', name: 'Defined_Path_Name', component: PathComponent }
    navigate with: this.router.navigate(['Defined_Path_Name', { data: { entity: 'entity' } } ]);

    in /path: console.log(this.routeParams.get('data'))
    that got me: Object {entity: "entity"}

//in your route file 

 in RouteConf: {path: 'calculator/:data', component: CalculatorComponent},

//in your component file navigate by like below

 navigate with: this.router.navigate(['/calculator', { data: this.loaddata } ]);

//and get data in  /calculator path like 

this.data =  this.route.snapshot.data['data'];

than console.log(this.data);
0 голосов
/ 01 июня 2018

Можете ли вы попробовать использовать это, это должно работать, надеюсь, что так

код app.route.ts

{path: 'calculator', component: CalculatorComponent},

и ваш код для маршрутизации

 let someData = {
   this.loanData
 };
 this.router.navigate(['/home/calculator/'+someData]);

и калькулятор.ts имеют код метода oninit, как это

import {ActivatedRoute} from '@angular/router';

    constructor(private route: ActivatedRoute) {}
    sub
    ngOnInit() {
        this.route.params
        .subscribe(data => {
         this.sub = data;
          console.log(this.sub);
});
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...