簡體   English   中英

如果angularjs中有多個項目,則ng-init不起作用,但是對單個項目起作用

[英]ng-init not working if multiple items in angularjs, but working for single item

我是stackoverflow的新手,如果這個問題不合適,我很抱歉。

我在ng-repeat(會話)中的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未顯示任何數據

順便說一下,會話表是不同的,問題表是不同的,問題是根據會話ID存儲的。 因此,需要根據會話ID在會話數據中提問數據

有沒有其他辦法讓這個工作?

在每個ng重復內部,我們有不同的范圍。 所以sessionslist[0] question對象與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;
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM