Javascript 是否可以在Angular JS中设置服务内部的外部作用域变量?

Javascript 是否可以在Angular JS中设置服务内部的外部作用域变量?,javascript,angularjs,angularjs-scope,angular-services,Javascript,Angularjs,Angularjs Scope,Angular Services,我使用的是角度服务,在多个控制器之间共享。有没有办法在这些服务中设置范围变量 这就是我到目前为止所做的: angular.module( "names", [] ) .factory( "_names", [ function() { return { initName: function (name, $scope) { $scope.$scope.name = name }

我使用的是角度服务,在多个控制器之间共享。有没有办法在这些服务中设置范围变量

这就是我到目前为止所做的:

angular.module( "names", [] )
    .factory( "_names", [ function()
    {
        return {

            initName: function (name, $scope) {
                $scope.$scope.name = name
            }
        }
    }])
;
在使用该服务的实际控制器中,我有:

angular.module("another.Place")
  .controller("NameCtrl", ["$scope", "_names", [function( $scope, _names) {

   $scope.name = "blank"
    _names.initName("Jane", $scope)
    console.log($scope.name)
 }])
;

因此,调用控制器中的
$scope.name
现在是
Jane
,控制台日志打印出
Jane
。显然,这不是一个非常有用的函数,只是作为一个示例。这可能吗?通常是如何做到的

避免将$scope传递给服务,它可能会导致比解决问题更多的问题。服务是单例的,服务上的任何属性都可以由任何控制器访问和更新。从共享存储在服务中的对象的角度考虑,要简单得多。然后,控制器作用域只引用父对象,可以轻松地更改任何组件的任何属性,因此,由于继承,controller1中的更改将影响controller2中的更改