在.ASPX文件中定义rootscope变量

问题描述 投票:0回答:1

我试图在.ASPX文件中定义AngularJS rootscope变量以在TypeScript文件中使用,但我不确定如何执行此操作。我愿意以任何方式在.ASPX文件中定义一个值并在TypeScript中使用它,所以任何其他建议都适用于我。

asp.net typescript angularjs-rootscope
1个回答
0
投票

如果您只需要告诉TypeScript该属性,那么您可以扩展rootScope接口:

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

然后,当您在控制器中注入$rootScope时,将其键入为您的新界面:

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

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

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

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

    $rootScope.myProp = 1;
</script>

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

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

© www.soinside.com 2019 - 2024. All rights reserved.