Ich bin neu in stackoverflow, Sorry, wenn diese Frage nicht korrekt ist.ng-init funktioniert nicht, wenn mehrere Artikel in angularjs, aber für einzelne Artikel arbeiten
Ich hatte eine Funktion in ng-init innerhalb der ng-repeat (Sitzung) zu bekommen die Fragen Länge durch Weitergabe Sitzung 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;
});
Also, wenn die Sitzungslänge Single ist, ng-init funktioniert, aber Sitzungen Länge mehrere es keine Daten zeigt. $ scope.questions ist nicht zeigt keine Daten
Übrigens, Sitzung Tabelle ist anders und Frage Tabelle ist anders, Fragen werden basierend auf Sitzungs-ID gespeichert. So brauchen Fragen Daten in Sitzungsdaten basierend auf Session-ID
Gibt es einen anderen Weg, um dies funktioniert?
tun könnten Sie ng-init nicht verwenden. Es sollte fast nie verwendet werden, wie dokumentiert. Initialisieren Sie die von der Ansicht benötigten Daten direkt von Ihrem Controller. Übrigens, es macht wenig Sinn, ein einziges $ scope.questions-Feld zu haben, das die Fragen einer Sitzung enthält, da Sie mehrere Sitzungen anzeigen. –
Anstatt die ng-init-Schleife durch die Sessionsliste zu verwenden und Fragen abzurufen – simon
Es ist keine gute Methode, einen API-Aufruf für jedes Element innerhalb einer ng-Wiederholung auszulösen. Wonach suchen Sie eigentlich? – Aravind