Javascript 将属性添加到所有$scope

Javascript 将属性添加到所有$scope,javascript,angularjs,Javascript,Angularjs,有没有一种好方法可以向所有$scope添加一个属性(在这种特殊情况下,它是一个服务) 澄清一下:我有一个名为i18nService的服务,我想在DOM上的角度表达式上使用它,而不必将它作为依赖项添加到每个控制器,并执行类似于$scope.i18nService=i18nService的操作 我一直在这样做,但我认为应该有更好的方法: myApp.run(function($rootScope, i18nService){ Object.getPrototypeOf($rootScope)

有没有一种好方法可以向所有
$scope
添加一个属性(在这种特殊情况下,它是一个服务)

澄清一下:我有一个名为
i18nService
的服务,我想在DOM上的角度表达式上使用它,而不必将它作为依赖项添加到每个控制器,并执行类似于
$scope.i18nService=i18nService
的操作

我一直在这样做,但我认为应该有更好的方法:

myApp.run(function($rootScope, i18nService){
    Object.getPrototypeOf($rootScope).i18nService = i18nService;
})
这对我来说很有效,因为
$rootScope
$scope
都是
scope
的实例,据我所知,运行阶段在控制器实例化之前(如果不是这样,请纠正我)


但是,是的,我希望有一种更聪明/更干净的方法来做这件事。

我相信你可以简单地做
$rootScope.i18nService=i18nService。然而,我不建议你这样做,因为这不是一个好的做法。如果您需要模板上的某些内容,请使用指令或过滤器。如果您需要控制器中的某些内容,请直接将其注入。@SergeyGoliney哦,该死,您实际上是对的,哈哈,我不知道$scope实际上是从$rootScope继承的,但这是有道理的,我觉得以前没有尝试过它很愚蠢。嗯,我使用的编辑器对角度表达式有一些很好的突出显示,所以我更喜欢阅读它而不是在指令上,而且,我经常需要它在控制器中。