簡體   English   中英

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

[英]How to change a $scope variable outside the controller in angularjs

我想在控制器外部更改$scope.outsidescope 我正在使用$routeProvider來路由和更改控制器。 $scope.outsidescope位於ng-view

我的問題是如何在ng-view之外更改$scope.value

樣例代碼:

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

角度代碼:

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

使用$ rootScope而不是$ scope在整個應用程序中共享數據。 但是創建定制服務是最好的方法。

控制器之間只有兩種共享數據的方法

1)綁定$ rootScope中的數據2)綁定服務中的數據

無法在控制器外部更改$ scope,因為在控制器外部不可用。

如果要這樣做,可以使用父范圍$ rootScope,您可以在應用程序中的任何位置訪問它。

但是根據您的要求,最好使用ng-bind代替expression,並且在路由器中為每個URL都可以調用s resolve來將值分配給this值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM