2016-01-29 5 views
1

У меня действительно глупая проблема, но я не знаю, как ее исправить. У меня есть файл index.html с загруженным AngularJS. Я использую Plunker проверить код:Ошибка загрузки AngularJS Контроллер

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

    <head> 
    <script data-require="[email protected]" data-semver="1.4.8" src="https://code.angularjs.org/1.4.8/angular.js"></script> 
    <link rel="stylesheet" href="style.css" /> 
    <script src="script.js"></script> 
    </head> 

    <body ng-controller="BodyController"> 
    <h1>{{ message }}</h1> 
    </body> 

</html> 

script.js И этот файл с этой информацией:

var BodyController = function($scope) { 
    $scope.message = "Hi Angular!" 
} 

В инспекторе он говорит:

Error: [ng:areq] Argument 'BodyController' is not a function, got undefined 

Скрипт загружается. Я определил контроллер в JS-файле и приложил директиву ng-controller, поэтому я не знаю, где это может произойти.

ответ

4

Это очень basic из AngularJS.

Сначала необходимо создать module:

var fooApp = angular.module("foo", []) 

И затем, зарегистрировать контроллер есть:

var BodyController = function($scope) { 
    $scope.message = "Hi Angular!" 
} 
fooApp.controller("BodyController", BodyController); 

И, в вашем HTML тег, измените ng-app так:

<html ng-app="foo"></html> 
3

Вам нужно добавить контроллер в свой угловой модуль.

angular.module('app', []) 
.controller('BodyController', function($scope) { 
    $scope.message = "Hi Angular!" 
}) 

Более подробную информацию о том, как настроить контроллер https://docs.angularjs.org/guide/controller

3

В HTML добавьте

<html ng-app="myapp"> 

и сценарий

angular.module('myapp', []).controller('BodyController',BodyController) 
1

Были несколько ошибок

  1. ng-app не был установлен
  2. угловой модуль не был определен
  3. контроллер не был определен

angular.module('app', []) 
 
.controller('BodyController', function($scope) { 
 
    $scope.message = "Hi Angular!" 
 
});
<html ng-app="app"> 
 
    <head> 
 
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
    </head> 
 

 
    <body ng-controller="BodyController"> 
 
    <h1>{{ message }}</h1> 
 
    </body> 
 
</html>