2016-09-20 75 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; 
    });