我似乎无法显示工厂的任何JSON数据。我很确定contractors.json文件正确加载,因为控制台几次抱怨它的语法。我的咕噜咕噜表没有给我任何错误,控制台也没有。我是棱角分明的新手,我不确定是什么问题。
'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文件中没有信息显示出来。
我正在使用凉亭,自耕农和gruntjs。非常感谢任何提示,技巧或一般意见。 谢谢你的推荐!
答案 0 :(得分: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;