У меня есть три файла - app.js, controllers.js, services.js. Есть еще несколько других, которые я хочу добавить, если я получу подход к работе. Я вижу код, входящий в секцию angular.module mainApp, затем службы и контроллеры. Однако ошибка не возникает, и данные не возвращаются, и методы контроллера вообще не вызываются (только контроллеры инициализируются из внешнего вида). Я попытался заставить вызов с помощью init(), но не повезло и там. Что я делаю не так?
Вот app.js
var mainApp = angular.module('MainApp', ['test.services', 'test.controllers']);
Controllers.js
var app = angular.module('test.controllers', []);
app.controller('TestCtrl', [$scope, 'TestService', function($scope, TestService)
var promise = TestService.makeHttpRequest(../../src/testFile.json);
promise.then(function(data){
$scope.results = data;
console.log($scope.results);
});
}]);
Не работает. Подход также не получает никаких данных.
var app = angular.module('test.controllers', []);
app.controller('TestCtrl', [$scope, $http, function($scope, $http){
$http.get('../../src/testFile.json').then(function(data) {
$scope.results = data.data;
console.log(data);
});
}]);
services.js
var appServices = angular.module('test.services', []);
//Does the same thing, but get call moved to services
Index.html
<body class="bg-blue mainContainer" ng-app="MainApp">
<div id="content-container" ng-contoller="TestCtrl" class="container main-container">{{results}}</div>
<div id="content-container" ng-contoller="MainController" class="container main-container" ng-init="loadResults()">
</body>
Ваш testFile.json
должен быть доступен вашим HTTP-сервером для формирования ответа.
Также вы не вызываете ваш контроллер из DOM должным образом.
Вот приблизительный пример для вашего html:
<body class="bg-blue mainContainer" ng-app="MainApp">
<div ng-controller="TestCtrl">
</div>
</body>
А затем отформатируйте свой JavaScript так:
var mainApp = angular.module('MainApp', ['test.controllers']);
var app = angular.module('test.controllers', []);
app.controller('TestCtrl', function() {
console.info('TestCtrl');
});
Это может быть вашей проблемой?
ng-contoller="MainController"
Обратите внимание на отсутствие R в редакции слова contRoller: Btw, обе функции вашего контроллера выглядят нормально для меня. Единственное, что я делаю, - это все как строка в массиве, например ['$ http', function ($ http) {}]