Ich erstelle eine Demo-App in Angular 2 und steckte in dieser App fest. Ich möchte eine globale Variable/Objekt in der App wie $rootScope
in eckigen verwenden. Bitte schlagen Sie mir vor, was zu tun ist, um dies zu erreichen? Derzeit verwende ich EventEmitter
.
app.component.ts:
<a routerLink="/admin" routerLinkActive="active" style="float:right;"
*ngIf="currentUrl != '/admin'" (adminUrl)="setUrl($event)" >Admin-{{currentUrl}}</a>
`@Output() adminUrl:String;`
heroes.component.ts:
@Output() adminUrl = new EventEmitter();
this.adminUrl.emit(this.router.location.path());
Der obige Code nicht der gesamte Code wird dies für das Verständnis ist, dass, was ich bin tun, um für dasselbe zu erreichen.
Verwenden ein geteilter Service https://angular.io/docs/ts/latest/cookbook/component-communication.html#!#bidirectional-service –
In meiner App. Ich verwende das Dashboard, das beim Start der App geladen wird. Aber ich möchte tun, im Dashboard gibt es einen Link "admin" und wollen diesen Link anzeigen, wenn Url anders sein würde als "/ admin", aber wenn die URL "/ admin" ist, dann will ich nicht um diesen Link zu zeigen. Das Problem ist, dass Dashboard nur einmal und im Dashboard geladen wird. * NgIf = "adminUrl! = '/ Admin'" Der Wert von adminUrl würde sich bei jeder Routenänderung ändern, aber hier (im Dashboard) behalten Sie den Wert. Bitte schlagen Sie vor, was ich tun kann? –
versuchen Sie diese https://stackoverflow.com/questions/35985009/angular-2-what-isäquivalence-to-root-scope.A viel bessere Lösung – Harshakj89