控制器未加载JSON文件Angular

时间:2015-09-28 18:57:56

标签: angularjs controller

我有三个文件 - 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>

2 个答案:

答案 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');
});