我是stackoverflow的新手,如果这个问题不合适,我很抱歉。
我在ng-repeat(session)中的ng-init中声明了一个函数 通过传递会话ID来获取问题长度。
//This is the HTML Part
<tr ng-repeat="session in sessionslist" ng-init='getQuestionsofSession(accessors.getId(session))' >
<td>{{session.name}}</td>
<td>{{session.speakers.length}}</td>
<td><p>{{questions.length}}</p></td>
</tr>
//This is the ANGULAR Part
$scope.getQuestionsofSession = function(sessionid){
$http.get('/api/audiencepanel/getquestions/'+sessionid)
.success(function(data){
$scope.questions= data;
});
};
//Getting sessions list
$scope.getsessions= function(){
$http.get("api/getsession/"+$stateParams.id).success(function(data){
$scope.sessionslist = data;
});
因此,如果会话长度为单个,则ng-init正在运行,但是会话 长度倍数它没有显示任何数据。 $ scope.questions不是 显示任何数据
顺便说一下,Session表是不同的而Question表是 根据会话ID存储不同的问题。因此,需要根据会话ID
在会话数据中提问数据还有其他办法可以实现这个目标吗?
答案 0 :(得分:0)
在每个ng重复内部,我们有不同的范围。因此question
中的sessionslist[0]
对象与sessionslist[1]
而不是使用init,你可以这样做
$scope.getsessions= function(){
$http.get("api/getsession/"+$stateParams.id).success(function(data){
angular.forEach(data, function(value, key){
$http.get('/api/audiencepanel/getquestions/'+value.id)
.success(function(data1){
value.questions= data1;
});
});
$scope.sessionslist = data;
});