2013-12-11 29 views
0

我發現了父代&子範圍繼承的兩個例子。但是,第一個使用父級和子級控制器,而第二個示例使用根級範圍。但第二個例子不能按預期工作。有什麼不同?

http://jsfiddle.net/angelohuang/kbUSb/ HTML 1

<div ng-controller="ParentCtrl"> 
    <div>Hello, {{data.message}}</div><br> 
    <input type="text" ng-model="data.message"> 
    <div ng-controller="ChildCtrl"><br><br> 
     <div>Hello 2, {{data.message}}</div><br> 
    </div> 
</div> 

腳本1

function ParentCtrl($scope) { 
    $scope.data = {message: ''}; 
} 

function ChildCtrl($scope) { 
} 

http://plnkr.co/edit/DBvSmO1fkmiOkH3sShSG

HTML 2

<input type="text" ng-model="data.message"> 
<div>Hello, {{data.message}}</div><br> 

<div ng-controller="firstCtrl"> 
    <input type="text" ng-model="data.message"> 
    <div>Hello 2, {{data.message}}</div> 
</div> 

腳本2

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

app.controller('firstCtrl', ['$scope', function($scope) { 

}]); 

回答

1

在第二個示例中,模塊「應用」不被使用觸發此錯誤:Argument 'firstCtrl' is not a function, got undefined

這是因爲你給你的模塊的名稱( '應用')在這裏:

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

但是沒有它開始角:

<html ng-app> 

切換該行這樣的:

<html ng-app="application"> 

它會按照您的預期運行。

updated plunker