Я видел другие посты, касающиеся этого, однако я проверил все остальные предложения, и у меня уже есть их.
У меня есть Angular 7 / Ionic 4
проект, где у меня есть следующий сервис ..
@Injectable({
providedIn: 'root'
})
export class AppRoutingService {
...
И это заявлено в моем основном модуле ...
@NgModule({
imports: [SharedModule, HttpClientModule],
declarations: [],
exports: [],
providers: [
...
AppRoutingService
]
Я внедряю и использую этот сервис везде без проблем.Но у меня есть один случай, когда я хочу использовать его по подписке rxjs
.
rxjs
Subject
находится в другой службе, которую я использую для мониторинга состояния входа в систему ...
export class LoginService {
private loggedIn: boolean = false;
public loggedInStateUpdate: Subject<boolean>;
И когда состояние входа меняется, я просто звоню дальше по этому Subject
.
Теперь, в другой области, где возникла проблема, я подписываюсь на это ..
this.loginService.loggedInStateUpdate.subscribe(isLoggedIn =>
this.gotoLoginPage(isLoggedIn));
Код gotoLoginPage
был просто встроенным, но я столкнулся с методом при возникновении этой проблемы.Все, что у него есть, это следующее ..
private gotoLoginPage(isLoggedIn : boolean) : void {
try {
if (isLoggedIn)
return;
this.availablePagesService.currentPageRoutePath = Constants.vals.pageRoutePaths.login;
this.appRoutingService.navigateRoot(Constants.vals.pageRoutePaths.login);
} catch (error) {
this.logger.error(`gotoLoginPage: ${error}`);
}
}
Теперь, сумасшедшая вещь, вдруг метод, который я хочу вызвать, не определен!
![enter image description here](https://i.stack.imgur.com/jsnMs.png)
И это было ранее определено, как код, перед тем как подписка успешно его назвала ..
![enter image description here](https://i.stack.imgur.com/wbzKi.png)
Если я посмотрю на мой this
в окне просмотра vscode все на моем this
выглядит как положено.Все другие внедренные сервисы имеют все внутренние компоненты, определенные как ожидалось.
Однако, в этом сервисе мы видим, что метод navigateRoot
не определен, но он отображается как функция в __proto__
.
![enter image description here](https://i.stack.imgur.com/VfWBl.png)
Я никогда не видел этого раньше!
Есть ли у кого-нибудь идеи, что здесь может быть не так?Я не вижу, в чем разница с этим сервисом.Он объявлен и предоставлен в root
, как и большинство других моих услуг.
Заранее благодарен за предложения