2016-01-08 68 views
2

我們可以從另一個控制器訪問一個控制器的$ scope嗎? 我需要在父母,子女整個數據和孫子控制器可以

這裏是我的腳本

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

app.controller('ParentController',ParentController); 
function ParentController($scope) 
{ 
    $scope.parentName="Parent" 
} 
app.controller('ChildController1',ChildController1); 
function ChildController1($scope) 
{ 
    $scope.childName1="Child1" 
} 
app.controller('ChildController2',ChildController2) 
function ChildController2($scope) 
{ 
    $scope.childName2="Child2" 
} 
app.controller('GrandChildController1',GrandChildController1); 
function GrandChildController1($scope) 
{ 
    $scope.grandChildName1="GrandChild1" 
} 

這裏是我的視圖代碼

<div> ng-app="myApp"> 

<div ng-controller="ParentController"> 

    Parent:{{parentName}} 
    Child1:{{childName1}} 
    Child2:{{childName2}} 
    GrandChild1:{{grandChildName1}} 

    <div ng-controller="ChildController1"> 

     Parent:{{parentName}} 
     Child1:{{childName1}} 
     Child2:{{childName2}} 
     GrandChild1:{{grandChildName1}} 

     <div ng-controller="GrandChildController1">  

      Parent:{{parentName}} 
      Child1:{{childName1}} 
      Child2:{{childName2}} 
      GrandChild1:{{grandChildName1}} 

     </div> 

    </div> 

    <div ng-controller="ChildController2"> 

     Parent:{{parentName}} 
     Child1:{{childName1}} 
     Child2:{{childName2}} 
     GrandChild1:{{grandChildName1}} 

    </div> 
</div> 

</div> 

我沒有得到孩子在家長控制器範圍內。我會做什麼。寫什麼服務什麼的。謝謝

+0

使用'$ rootscope' – Rayon

+0

歡迎使用計算器。在控制器之間共享數據是一個非常常見的問題,正確的答案通常是使用服務(編寫一個服務來保存要在控制器之間共享的數據)。 –

+0

您可以從小孩訪問父母孩子,但不能反過來。 創建一個服務在控制器和模塊之間共享數據(優於rootcope) – AlainIb

回答

0

看看this教程,很短,一個這非常好。

0

簡單$scope繼承是嵌套控制器可能進入你的看法

<div ng-controller="a"> 
    {{num}} 
    <div ng-controller="b"> 
    {{num}} 
    </div> 
</div> 

app.controller('a', a); 
function ParentController($scope) { 
    $scope.num = 1 
} 


app.controller('b', b); 
function ParentController($scope) { 
    //$scope.num is inherited by the parent controller 
} 

您可以隨時使用$rootScope通過控制器之間的數據爲好,一般使用$broadcast$emitdispatchers

+0

如何使用服務訪問不同的控制器 –

相關問題