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中的更改