2014-02-05 3 views
0

Я не могу показать данные JSON с моей фабрики. Я уверен, что файл contractors.json загружается правильно, потому что консоль жаловалась на его синтаксис несколько раз. Мои ворчащие часы не дают мне никаких ошибок и не являются консолью. Я новичок в угловой, и я не уверен, что не так.завод не отображает данные json angularjs

'use strict'; 

angular.module('angularPlainApp', [ 'ngCookies', 'ngResource', 'ngSanitize', 'ngRoute' ]) 

    .config(function ($routeProvider) { 
    $routeProvider 
     .when('/', { 
     templateUrl: 'views/main.html', 
     controller: 'MainCtrl' 
     }) 
     .otherwise({ 
     redirectTo: '/' 
     }); 
    }) 

    .controller('MainCtrl', function ($scope, dataList) { 
    $scope.contractors = dataList.getList(); 

    $scope.awesomeThings = [ 
     'HTML5 Boilerplate', 
     'AngularJS', 
     'Karma' 
    ]; 
    }) 

    .factory('dataList', function($http, $q) { 
    return { 
     getList: function() { 
     var deferred = $q.defer(); 
     $http.get('scripts/contractors.json').success(function(data){ 
      deferred.resolve(data); 
     }).error(function(){ 
      return deferred.promise; 
     }); 
     }, 
    }; 
    }); 

Я положил app.js во всех различных типов установок и никогда не отображаются какие-либо данные, то же самое с фрагмент кода HTML.

<aside class= "contractors"> 
    <ul class= "contractors-list" ng-controller="MainCtrl" > 
    <li ng-repeat = "contractor in contractors"> 
      <div class="headshot-wrapper"> 
       <img src='path/to/img.img'> 
      </div> 
      <div class="contractor-summary-info"> 
      <h3>{{ contractors.name }}</h3> 
      <h4 class="summary-subhead">{{ contractors.position }}</h4> 
       <p>{{ contractors.number }}</p> 
       <p>{{ contractors.jobFunction }}</p> 
      </div> 
     </li> 
    </ul><!--.contractor-summary--> 
    </aside><!--contractor-list--> 

Информация о моих внешних файлах contractors.json не отображается.

Я использую беседку, йоман и грунт. Любые советы, трюки или общий ввод приветствуются. Спасибо в advace!

ответ

0

вы не возвращал обещание:

var deferred = $q.defer(); 
    $http.get('scripts/contractors.json').success(function(data){ 
     deferred.resolve(data); 
    }).error(function(){ 
     // 
     // !!!! here is your mistake! 
     // You only return the promis if an error occured. 
     // 
     return deferred.promise; 
    }); 

попробовать это так:

var deferred = $q.defer(); 
$http.get('scripts/contractors.json').success(function(data){ 
    deferred.resolve(data); 
}).error(function(){ 
    deferred.reject(); 
}); 
return deferred.promise; 
+0

Спасибо! Это заставило меня начать немного, все еще есть еще несколько ошибок для разработки. Как я уже сказал, я новичок в Angular и Javascript, и я точно не знал, что делает этот раздел, просто добавил его из учебника. – ericmackey

Смежные вопросы