Я под файлом app.js
var app = angular.module('base', ['ngRoute']);
app.config(['$routeProvider', function ($routeProvider) {
$routeProvider.
when('/categories', {
templateUrl: 'views/cat.view.html',
controller: 'CatCtrl'
})
}]);
Вот файл CatCtrl.js
angular.module('base').controller('CatCtrl', ['$scope', '$http', function ($scope, $http) {
$http.get('/categories').success(function (data) {
$scope.categories = data;
});
}]);
Вот cat.view.html
<div ng-controller="CatCtrl">
<div class="row">
<div class="categories">
Cats View
</div>
</div>
</div>
Я уже добавляю ng-app="base"
в файл index.html.
Я получаю следующую ошибку
Error: [ng:areq] Argument 'CatCtrl' is not a function, got undefined
Я использую angularjs 1.4.7
.
Я уже рассмотрел другие ответы на stackoverflow, чтобы решить эту проблему, но никто из них не работал для меня. Как я могу устранить эту ошибку?
ОБНОВИТЬ
Вот Plunk
Вот рабочая демонстрация
var app = angular.module('base', ['ngRoute']);
angular.module('base').controller('CategoriesCtrl', ['$scope', '$http', function ($scope, $http) {
$http.get('/categories').success(function (data) {
$scope.categories = data;
});
}]);
app.config(['$routeProvider', function ($routeProvider) {
$routeProvider.
when('/categories', {
templateUrl: 'views/cat.view.html',
controller: 'CategoriesCtrl'
})
}]);
Надеюсь, это может помочь вам
вам придется сделать две небольшие изменения -
Во-первых, я не видел ни одного CatCtrl в вашем коде. Измените эту строку
angular.module('kB'). controller ('CategoriesCtrl', ['$ scope', '$ http',
в
angular.module('kB'). контроллер ('CatCtrl', ['$ scope', '$ http',
Во-вторых, поскольку контроллер определен в другом модуле (KB), чем базовый, вам нужно ввести модуль в базу, если вы хотите использовать контроллер
var app = angular.module('base', ['ngRoute', 'kB']);
Последний момент. Поскольку вы используете alrady, указывающий CatCtrl в маршрутизации, вам не нужно использовать его снова в своем представлении.
Из вашего плункера вы можете видеть, что ваш шаблонUrl ошибочен, это должен быть путь к вашему.html файлу.
edit: имя редактируется под вопросом ->
Имя вашего контроллера - "КатегорииCtrl". "CatCtrl" - это просто имя файла, который вы собираетесь включить в index.html
<div ng-controller="CategoriesCtrl"> <div class="row"> <div class="categories"> Cats View </div> </div> </div> var app = angular.module('base', ['ngRoute']); app.config(['$routeProvider', function ($routeProvider) { $routeProvider. when('/categories', { templateUrl: 'views/cat.view.html', controller: 'CategoriesCtrl' }) }]);
Добавьте зависимость как
var app = angular.module('base', ['ngRoute', 'kB']);
Надеюсь, что это поможет вам.