AngularJS和MongoDB,数据从数据库中提取,但不能使用ng repeat显示

AngularJS和MongoDB,数据从数据库中提取,但不能使用ng repeat显示,angularjs,html,mongodb,mongoose,Angularjs,Html,Mongodb,Mongoose,我试图从数据库中获取数据,并使用ng repeat显示数据。工厂的getAll功能正确地完成了这项工作,我得到了一个包含所有数据的对象,但它没有正确显示。在表中,我只得到第一个索引,后面什么也没有 如果我尝试使用(i=0;i

我试图从数据库中获取数据,并使用
ng repeat
显示数据。工厂的
getAll
功能正确地完成了这项工作,我得到了一个包含所有数据的对象,但它没有正确显示。在表中,我只得到第一个索引,后面什么也没有

如果我尝试使用(i=0;i,它可以正常工作,但不能与ng repeat一起使用

var testReactie=angular.module('testReactie',['ngRoute']);
testReactie.config(函数($routeProvider){
$routeProvider
。当(“/”{
templateUrl:'InstructionUni.ejs'
})
.when(“/form”{
templateUrl:'form.ejs',
控制器:“formContr”
})
。当(“/test”{
templateUrl:'joc.ejs',
控制器:“gameContr”
})
。当(“/stat”{
templateUrl:'scoruri.ejs',
控制器:“statContr”,
决心:{
postPromise:['DataService',函数(DataService){
返回DataService.getAll();
}]
}
});
});
工厂('DataService',['$http',函数($http){
变量o={
人员:[],
人:{}
};
o、 getAll=function(){
返回$http.get('/db').success(函数(数据){
o、 人员=数据;
});  
};
o、 create=function(){
返回$http.post('/db',o.person).success(函数(数据){
o、 人员推送(数据);
});
};
返回o;
}]);
testReactie.controller('mainContr',函数($scope){
});
testReactie.controller('statContr',函数($scope,DataService){
});

斯科鲁里
编号。
性别
瓦尔斯塔
Timp Mediu
{{$index+1}}
{{pers.sex}
{{pers.varsta}}
{{pers.timp}

不能将工厂作为控制器运行

在控制器中,执行以下操作

testReactie.controller('mainContr', ['DataService', '$scope', function(DataService, $scope) {
    DataService.getAll().then(function(successData){ // a promise helps you do something when it's resolved
        $scope.awesomeData = successData;
    }
});
o.getAll = function(){
    var promise = $q.defer(); // the $q helps create a promise

      return $http.get('/db').success(function(data){
            promise.resolve(data); // promise returns data when resolved
      });  
return promise; // returns a promise
};
改变你的工厂,让一切变得像

testReactie.controller('mainContr', ['DataService', '$scope', function(DataService, $scope) {
    DataService.getAll().then(function(successData){ // a promise helps you do something when it's resolved
        $scope.awesomeData = successData;
    }
});
o.getAll = function(){
    var promise = $q.defer(); // the $q helps create a promise

      return $http.get('/db').success(function(data){
            promise.resolve(data); // promise returns data when resolved
      });  
return promise; // returns a promise
};
你的模板应该是

<div ng-repeat = "pers in awesomeData">

这是因为当模板中有它时,它将自动调用$scope.awesomeData。因此,当您使用DataService时,它调用的是未定义的$scope.DataService


我希望这有帮助。

我解决了这个问题。它来自HTML。我在div中添加了ng repeat指令,它打破了表格。删除div并在标记中添加指令之后,它工作得很好