我有三个文件 - app.js,controllers.js,services.js。如果我开始工作,还有一些我想添加的其他内容。我看到代码进入mainApp的angular.module部分,然后是服务和控制器。但是,不会发生错误并且没有数据返回,并且根本不调用控制器方法(仅从控制器的外观初始化控制器)。我尝试使用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>
答案 0 :(得分:1)
这可能是你的问题吗?
ng-contoller="MainController"
注意contRoller一词中缺少的R. 编辑: 顺便说一下,你的两个控制器功能对我来说都没问题。 我唯一不同的是将所有内容命名为数组中的字符串,例如[&#39; $ http&#39;,function($ http){}]
答案 1 :(得分:0)
您的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');
});