2017-12-28 2 views
0

Ich versuche eine AngularJS rootscope-Variable in einer .ASPX-Datei zu definieren, um sie in einer TypeScript-Datei zu verwenden, aber ich bin unsicher, wie das geht. Ich bin offen für jede Möglichkeit, einen Wert in einer .ASPX-Datei zu definieren und in TypeScript zu verwenden, so dass jeder andere Vorschlag für mich funktioniert.Definiere rootscope-Variable in einer .ASPX-Datei

+0

Haben Sie bereits Zugriff auf '$ rootScope' in Ihrer .ASPX-Datei? –

Antwort

0

Wenn Sie einfach Typoskript müssen sagen, dass die Eigenschaft gibt, können Sie die rootScope Schnittstelle erweitern:

interface extendedRootScope extends ng.IRootScopeService { 
    myProp: number; 
} 

Dann, wenn Sie $rootScope in Ihrem Controller injizieren, es als neue Schnittstelle:

export class MyController { 
    constructor(private $rootScope: extendedRootScope) { } 

    someMethod() { 
     // Access this.$rootScope.myProp 
    } 
} 

Wenn Sie $rootScope von außerhalb der Angular Welt zugreifen müssen (wie in Ihrer ASPX-Seite), um die Eigenschaft hinzufügen, können Sie etwas tun:

<script> 
    var injector = angular.element('[ng-app]').injector(); 
    var $rootScope = injector.get('$rootScope'); 

    $rootScope.myProp = 1; 
</script> 

Dies setzt voraus, dass Sie ng-app verwenden, um Ihre Angular-App zu initialisieren.

In ähnlicher Weise können Sie einen Angular-Dienst in einem Skript-Tag erstellen, $rootScope in diesen Dienst injizieren und Eigenschaften hinzufügen.

+0

Danke, ich habe den zweiten Vorschlag verwendet und es funktioniert super! – jkost4

+0

Toll, wenn das half, bitte markieren Sie es als die angenommene Antwort. –

Verwandte Themen