2016-03-04 73 views
0

有沒有一種方法可以通過$ controller從一個控制器繼承一個控制器到另一個控制器?AngularJS從另一個控制器繼承一個範圍

這裏是我當前的代碼:

var peopleApp = angular.module('peopleApp', []); 

peopleApp.controller('indexController', function($scope){ 
    $scope.sampleVar = "Hello World"; 
    $scope.sampleVar2 = "Hello World Again"; 
}); 

peopleApp.controller('addController', function($scope, $controller){ 
    $controller('indexController', {$scope.sampleVar: $scope.sampleVar}); 
    alert($scope.sampleVar); 
}); 

我知道這將拋出,因爲一個錯誤 「( 'indexController的',{$ scope.sampleVar:$ scope.sampleVar})$控制器;」應該是「$ controller('indexController',{$ scope:$ scope});」但是概念或期望的回報在那裏。

+0

任何地方你想繼承只有1個值($ scope.sampleVar)的範圍是什麼? –

+0

它應該是這樣的 –

+0

這不是一個好設計'$ controller('indexController',{$ scope.sampleVar:$ scope.sampleVar});' –

回答

0
<body ng-controller="parentController"> 
    <div ng-controller="childController1"> 
    </div> 
    <div ng-controller="childController2"> 
    </div> 
</body> 

可以繼承性形成父控制器childController1和childController2

Angularjs通過,你在DOM定義NG-控制器指令內部maintaines範圍層次。對於https://docs.angularjs.org/guide/controller

另一種方式更detials是進樣$ rootScope內部控制和訪問屬性從 在您的應用程序控制器

var app = angular.module('sample',[]) 
app.controller('controller1',function($rootScope,$scope){ 
$rootScope.parent ="I am visible in any controller"; 
}) 
app.controller('controller2',function($rootScope,$scope){ 
//here you can access rootScope property using rootScope or Scope 
// Because rootScope is parent for all scope object 
// Angular scope protochain is like javascript protochain it looks from child to parent scope 
    console.log($rootScope.parent); 
    console.log($scope.parent); 

}) 
相關問題