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

时间:2016-06-12 01:21:33

标签: javascript jquery angularjs

我想更改控制器外的$scope.outsidescope。我正在使用$routeProvider来路由和更改控制器。 $scope.outsidescope位于ng-view之外。

我的问题是如何更改$scope.value之外的ng-view

示例代码:

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

Angular Code:

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.';
}

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

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

中绑定数据

答案 2 :(得分:-2)

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

如果你想这样做,你可以使用父范围,即$ rootScope,你可以在应用程序的任何地方访问它。

但根据您的要求,最好使用ng-bind而不是表达式,并且在路由器中为每个URL调用s resolve以将值赋给此值。