2013-12-11 2 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

Смежные вопросы