在 .ASPX 文件中定义 rootscope 变量

Define rootscope variable in an .ASPX file

我正在尝试在 .ASPX 文件中定义一个 AngularJS rootscope 变量以在 TypeScript 文件中使用,但我不确定如何执行此操作。我愿意接受能够在 .ASPX 文件中定义值并在 TypeScript 中使用它的任何方式,因此任何其他建议都对我有用。

如果你只需要告诉 TypeScript 属性 在那里,你可以扩展 rootScope 接口:

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

然后当你在控制器中注入 $rootScope 时,输入它作为你的新界面:

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

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

如果您需要从 Angular 世界之外(例如在您的 ASPX 页面中)访问 $rootScope 以添加 属性,您可以这样做:

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

    $rootScope.myProp = 1;
</script>

这假设您正在使用 ng-app 来初始化您的 Angular 应用程序。

同样,您可以在脚本标记中即时创建一个 Angular 服务,将 $rootScope 注入该服务,并向其添加属性。