在.ASPX文件中定义rootscope变量

时间:2017-12-28 19:58:54

标签: asp.net typescript angularjs-rootscope

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

1 个答案:

答案 0 :(得分:0)

如果您只需告诉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注入该服务,并向其添加属性。