У меня есть многостраничный веб-сайт (с использованием маршрутизатора), и я хотел бы перенести значение переменной с одной страницы на другую.
На моей странице контактной формы у меня есть следующий код:
testName:string = "hello";
ngOnInit()
{
this.dataService.Stream
.subscribe(
(city:City) => this.processData(city),
(err) => console.log('Error at processing data'),
() => console.log('Complete...')
)
}
processData(city:City)
{
console.log('the city name is: ', this.testName);
this.problematicCity = city;
this.testName = city.name;
console.log('received data for city: ', this.testName);
}
Когда я на главной странице и отправляю город в службу данных, я получаю следующий вывод вконсоль:
the city name is: hello
received data for city: Luxemburg
Поэтому я знаю, что информация передается правильно.Тем не менее, когда я перехожу на страницу контактов, testName
меняется на «привет».
Как я могу предотвратить это?Я попытался не инициировать testName, но затем я получаю сообщение об ошибке: assignment to undeclared variable string
.
Перемещение testName:string = "hello";
в ngOnInit
также приводит к той же ошибке.
Добавление: Это моя служба данных:
//data.service.ts
import {Subject} from 'rxjs/Subject';
import {Injectable} from 'angular2/core';
import {City} from '../model/city.model';
@Injectable()
export class DataService
{
Stream:Subject<City>;
constructor()
{
this.Stream = new Subject();
}
}