我正在尝试在.ASPX文件中定义AngularJS rootscope变量以在TypeScript文件中使用,但我不确定如何执行此操作。我愿意以任何方式在.ASPX文件中定义一个值并在TypeScript中使用它,所以任何其他建议都适用于我。
答案 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
注入该服务,并向其添加属性。