2016-09-20 78 views
0

似乎无法获得test.json数据输出在我的本地。简单的角度项目不工作

不知道这是否与我在本地运行它的事实有关。

谢谢:)

的index.html

<!doctype html> 
<html> 
    <head> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    </head> 
    <body ng-app="testApp"> 

    <div class="main" ng-controller="MainController"> 
     <div class="container"> 
      <div ng-repeat="info in test"> 
       <p>{{ info.nm }}</p> 
       <p>{{ info.cty }}</p> 
       <p>{{ info.hse }}</p> 
       <img ng-src="{{ info.cty }}"> 
      </div> 
     </div> 
    </div> 

    <script src="https://code.jquery.com/jquery-2.2.4.min.js" integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44=" crossorigin="anonymous"></script> 

    <!-- Include the AngularJS library --> 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.0/angular.min.js"></script> 

    <!-- Modules --> 
    <script src="js/app.js"></script> 

    <!-- Controllers --> 
    <script src="js/controllers/MainController.js"></script> 

    <!-- Services --> 
    <script src="js/services/servicetest.js"></script> 

    </body> 
</html> 

app.js

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

MainController.js

app.controller('MainController', ['$scope', 'test', function($scope, test) { 
    test.success(function(data) { 
    $scope.test = data; 
    }); 
}]); 

servicetest.js

app.factory('test', ['$http', function($http) { 
    return $http.get('test.json') 
      .success(function(data) { 
       return data; 
      }) 
      .error(function(err) { 
       return err; 
      }); 
}]); 

test.json与servicetest.js位于同一文件夹中。

+0

你能提供,在控制台弹出错误。 – nubinub

回答

0

你可以尝试用

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

,而不是

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

该数组是指,你可以简单地说注射各种依赖关系。

1

您的代码中存在几处错误。

  1. 你不应该指定模块的依赖性为空白(''),这将要求注射器为'',将抛出$injector error

    var app = angular.module('testApp', []); 
    
  2. 厂应该返回像

    app.factory('test', ['$http', function($http) { 
        var getData = function(){ 
        return $http.get('test.json') 
        } 
        return { 
        getData: getData 
        } 
    }]); 
    
  3. 的方法对象
  4. 从控制器利用新创建的工厂方法。

    test.getData().then(function(response) { 
        $scope.test = response.data; 
    });