2015-10-25 3 views
0

Я новичок в Angular, я хотел бы знать, что не так с моим кодом, потому что браузер показывает мне эту ошибку: Ошибка: [ng: areq] http://errors.angularjs.org/1.4.7/ng/areq?p0=HelloWorldCtrl&p1=not%20a%20function%2C%20got%20undefined at Ошибка (родной)Угловая ошибка Ошибка: [ng: areq]

у эш Codigo эс-Эсте:

<!doctype html> 
<html ng-app> 
<head> 
    <title>Angular Practice</title> 
</head> 
<body> 
    <h1 ng-controller="HelloWorldCtrl">{{helloMessage}}</h1> 

    <script src="angular.min.js"></script> 
    <script type="text/javascript"> 
     function HelloWorldCtrl($scope) { 
      $scope.helloMessage = "Angular Practice"; 
     } 
    </script> 
</body> 
</html> 

Большое спасибо.

ответ

0

Ваш HelloWorldCtrl не определен.

Это потому, что вы не связываете его как угловой модуль с подключенным контроллером.

нг-контроллер ищет определения, как это:

angular.module('HelloWorldCtrl', []) 

    .controller('HelloWorldCtrl', function($scope){ 
     $scope.helloMessage = "Angular Practice"; 
    }); 

Этот контроллер также должен быть назначен к основному приложению, которое вам нужно ссылаться на эту директиву нг-приложения, то есть

<html ng-app="helloWorldApp"> 

Что должен указывать на модуль создания, как, например:

var helloWorldApp = angular.module('helloWorldApp ', [ 
    'HelloWorldCtrl' 
]) 

Заметьте, я вк ng a 'HelloWorldCtrl' как элемент для второго параметра в определении этого модуля. Это говорит об угловой загрузке этого контроллера в качестве ресурса, который затем можно ссылаться на эту директиву ng-controller.

EDIT:

сделал небольшое исследование на моем упоминании о добавлении «HelloWorldCtrl» в качестве элемента массива выше, и хотел, чтобы разработать немного о том, почему моем решение немного отличается от другого ответа здесь. Способ, которым я его настроил, таков, что «HelloWorldCtrl» - это отдельный модуль. В этом случае вам нужно ссылаться на него так, как я. Это говорит модулю приложения, что он зависит от модуля HelloWorldCtrl. В нижеприведенном ответе моя привязка этого контроллера непосредственно к приложению, и в этом случае это необязательно.

0

Шаги, чтобы сделать его работу,

  • Добавить директиву нг-приложение для вашего <html> тега
  • Определите модуль app в приведенном ниже сценарии.
  • Определите свой контроллер HelloWorldCtrl, как показано ниже.

Проверить это Plunker - http://plnkr.co/edit/w8RWm6nr1WgvhX3BbGUE?p=preview

!DOCTYPE html> 
    <html ng-app="app"> 

     <head>  
     <script src="http://apps.bdimg.com/libs/angular.js/1.4.0-beta.4/angular.min.js"></script>  
     </head> 

     <h1 ng-controller="HelloWorldCtrl">{{helloMessage}}</h1>  

     <script type="text/javascript"> 
      angular.module('app', []); 
      angular.module('app').controller('HelloWorldCtrl', [ '$scope', function($scope) { 
      $scope.helloMessage = "Angular Practice"; 

      }]); 
     </script> 

    </html>