2016-09-20 4 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. Использовать только что созданный заводский метод от контроллера.

    test.getData().then(function(response) { 
        $scope.test = response.data; 
    }); 
    
Смежные вопросы