2016-03-04 75 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); 

}) 
相关问题