2013-03-01 90 views
0

HTML代碼:如何從父範圍獲取嵌套模型?

<body ng-controller="MainCtrl"> 
    <h1>Outer: {{aaa.bbb}}</h1> 
    <div ng-controller="InnerCtrl"> 
    <h1>Inner1: {{$parent['aaa']}}</h1> 
    <h1>Inner2: {{$parent['aaa.bbb']}}</h1> 
    </div> 
</body> 

Angularjs代碼:

app.controller('MainCtrl', function($scope) { 
    $scope.aaa = { 
    bbb:'Freewind' 
    } 
}); 

app.controller('InnerCtrl', function($scope){ 
}); 

呈現的HTML將是:

Outer: Freewind 

Inner1: {"bbb":"Freewind"} 

Inner2: 

你可以看到Inner2:是空的。

我該如何展示它?

這裏有一個現場演示:http://plnkr.co/edit/7IfxgsNCaUpKH9HOpr26?p=preview

回答

3

InnerCtrl範圍繼承其父範圍(MainCtrl範圍)的屬性,因此,你可以直接訪問這些屬性:

<div ng-controller="InnerCtrl"> 
    <h1>Inner1: {{aaa}}</h1> 
    <h1>Inner2: {{aaa.bbb}}</h1> 
</div> 
+0

它的工作原理,但我想明確調用'$ parent' – Freewind 2013-03-01 10:25:56

+1

這通常不是一個好主意......但是,將「Inner2」更改爲「$ parent ['aaa'] ['bbb']',它將起作用。 – bmleite 2013-03-01 10:29:54

+0

或'$ parent。$ eval('aaa.bbb')',但我不知道這是否是最好的解決方案 – Freewind 2013-03-01 10:44:29