Ошибка: [ng: areq] Аргумент ’employerCtrl’ не является функцией, не определен

#javascript #angularjs

#javascript #angularjs

Вопрос:

У меня есть один неопределенный аргумент, но я не понимаю, почему. Если я помещу свой контроллер в app.js папка, но все работает, поскольку я намереваюсь создать хорошую структуру, ничего не работает.

структура:

 index
  app
     app.js
  components
     home
         views
              job_offers.html
         controller
              employer_controller.js
  

Мой контроллер:

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

app.controller("employerCtrl", ["$scope", function($scope) {

    $scope.title = "Fronteend Software Engineer";
    $scope.company = "Bee Engineering";
    $scope.city = "Lisbon";
    $scope.schedule = "Full-time";
    $scope.date = "17-10-2016";
    console.log($scope.city,$scope.title);

}]); 
  

App.js

 var app = angular.module('myApp', ["ngRoute"]);

app.config(function($routeProvider){
    $routeProvider
        .when("/",{
            templateUrl: "app/components/home/views/job_offers.html",
            controller: "employerCtrl"
        })
        .when("/job" , {
            templateUrl: "app/components/job/views/job.html",
            controller: "job"
        })
        .when("/formation" , {
            templateUrl: "app/components/formation/views/formation.html",
            controller: "formation"
        }) 
        .when("/news" , {
            templateUrl: "app/components/news/views/news.html",
            controller: "news"
        })
        .otherwise({
            redirectTo: '/login'
        })
});
  

HTML

 <html lang="en" data-ng-app="myApp" >


<!-- About Section -->
<section id="slide" class="about-section" >
    <div class="container">
        <div class="row content" ng-view>

        </div>
    </div>
</section>
  

Ответ №1:

Вам не нужно снова объявлять модуль для контроллера,

 //remove this line
var app = angular.module('myApp.employerCtrl', []);

app.controller("employerCtrl", ["$scope", function($scope) {

    $scope.title = "Fronteend Software Engineer";
    $scope.company = "Bee Engineering";
    $scope.city = "Lisbon";
    $scope.schedule = "Full-time";
    $scope.date = "17-10-2016";
    console.log($scope.city,$scope.title);

}]); 
  

Комментарии:

1. работает 🙂 но странно, потому что он попросил меня объявить. Спасибо

2. кто просил объявить?

3. моя консоль, по его словам, не была создана, поэтому я добавил. Вероятно, ошибка перепутана и была с другой.