Javascript 如何在angularjs中更改控制器外部的$scope变量

Javascript 如何在angularjs中更改控制器外部的$scope变量,javascript,jquery,angularjs,Javascript,Jquery,Angularjs,我想在控制器外部更改$scope.outsidescope。我正在使用$routeProvider路由和更改控制器。$scope.outsidescope位于ng视图的外部 我的问题是如何在ng视图之外更改$scope.value 示例代码: <html ng-app="Myapp"> ....... <body> <div> {{outsidescope}} </div> <div class="" data-

我想在控制器外部更改
$scope.outsidescope
。我正在使用
$routeProvider
路由和更改控制器。
$scope.outsidescope
位于
ng视图的外部

我的问题是如何在
ng视图
之外更改
$scope.value

示例代码:

<html ng-app="Myapp">
 .......
<body>
   <div>
     {{outsidescope}}
   </div>
   <div class="" data-ng-view></div>
</body>
</html>

使用$rootScope而不是$scope在应用程序中共享数据。但是创建自定义服务是最好的方法。

不可能在控制器外部更改$scope,因为它在控制器外部不可用

如果您想这样做,您可以使用父作用域$rootScope,您可以在应用程序中的任何位置访问它


但根据您的要求,最好使用ng bind而不是表达式,在路由器中,您可以调用s resolve为每个url分配该值。

在控制器之间共享数据的方法只有两种

1) 在$rootScope中绑定数据
2) 服务中的绑定数据

{{outsidescope}}使用分区上的控制器名称,但仍然不清楚您想要做什么。你的布局和解释过于简单了。使用服务是在控制器之间共享数据的典型最佳方法。@charlietfl Yaa经过大量研究,我发现它将由服务完成。但当我在第一个div中添加一个控制器时,它显示了角度误差。问题真的不清楚。模板中的
scope.value
在哪里?哪种模板?代码中的这个
$scope.outsidescope
怎么样?你的代码示例和你对问题的描述根本没有联系。但控制器外面的
甚至意味着什么?如果它来自前面提到的另一个控制器,则使用服务共享数据。你只是没有提供足够的细节,这是不赞成的做法,很少有任何需要把东西放在$rootScope中,除非它们需要全局
ng bind
{}
做完全相同的事情作为定向绑定。阅读文档。
通常情况下,您不直接使用ngBind,而是使用类似于{expression}但不太详细的双卷曲标记。
是的,但是您的用户{{expression}},当您加载页面时,它将显示{expression}直到未分配值,并且使用ng bind,在分配值之前,它将不显示任何内容。所以,我认为使用ng-bind更好。但这和你们在回答中所说的完全不同,你们在回答中所说的非常误导,这与OP的问题无关。正确使用ng斗篷和指令也可以避免该问题
var app = angular.module('Myapp', ['ngRoute']).
   config(['$routeProvider', function($routeProvider) {
   $routeProvider
    .when("/", {templateUrl: "partials/home4.html", controller: "PageCtrl"})
    .otherwise({
        redirectTo: '/pages/404'
     })
 }]);

app.controller('PageCtrl', ['$cookies',function ($scope) {
   $scope.outsidescope = 'Some thing.';
}