2017-01-09 1 views
0

Ich habe ein Array von Abschnitten, wo ein Abschnitt in das Array geschoben wird, wenn der Benutzer ein Kontrollkästchen anklickt. Es ist wie folgt definiert:Zugriff auf Felder nach dem Hinzufügen von Array zu einem anderen Array nicht möglich

$scope.print = { 
    sections:[] 
}; 

Nachdem ich alle ausgewählten Abschnitte haben, ich einen Dienst verwenden, um eine Liste von Fragen für jeden ausgewählten Abschnitt wie folgt zu erhalten:

var questions = []; 
myService.getQuestions(id) 
    .success(function (data) { 
    questions = data; 
    }); 

Dann ordne ich die zurück Fragen zum ursprünglichen Array wie folgt: durch ihre Feldnamen

angular.forEach($scope.print.sections, 
    function (value, key) { 
     if (value.QuestionSectionID === id) { 
      $scope.print.sections[key].questions = questions; 
     } 
    }); 

die Zuordnung „scheint“ zu arbeiten, aber ich bin nicht in der Lage, die bestimmten Felder in den Fragen Array zuzugreifen.

Auf meiner HTML-Seite, ich habe dies:

<div ng-repeat="ps in print.sections"> 
    <div> 
     <h4>{{ps.vchSectionName}}</h4> 
    </div> 
    <div ng-repeat="section in ps.questions"> 
     <div ng-repeat="q in section"> 
      {{q.vchQuestionText}} 
     </div> 
    </div> 
</div> 

Wenn ich versuche, das „q.vchQuestionText“ Feld zuzugreifen, mein HTML ist leer, aber wenn ich einfach wie folgt vor:

<div ng-repeat="q in section"> 
    {{q}} 
</div> 

Ich kann dann alle Informationen in jedem Feld von "q" sehen. Aber ich muss auf jedes Feld in "q" mit seinem Namen zugreifen. Was fehlt mir hier?

Jede Hilfe wird sehr geschätzt!

+0

Können Sie einige Beispieldaten geben? –

+0

Was genau möchten Sie sehen? $ scope.print.sections ist ein Array von Abschnitten. Jede Sektion hat eine ID und einen Namen. Das Fragen-Array enthält ungefähr 30 Felder. –

+0

In js haben Sie Abschnitte Array mit verschachtelten Fragen Array, aber in HTML verwenden Sie ngrepeat für Fragen zuerst und benennen Sie jeden Abschnitt –

Antwort

0

Okay, der Grund, dass ich alle Daten in "q" anzeigen konnte, aber kein Feld angeben konnte, ist, weil ich eine zu viele ng-repeat Direktiven hatte.

Alles, was ich brauchte, war folgendes:

<div ng-repeat="ps in print.sections"> 
<div> 
    <h4>{{ps.vchSectionName}}</h4> 
</div> 
    <div ng-repeat="q in ps.questions"> 
     {{q.vchQuestionText}} 
    </div> 
</div> 

Hoffentlich dies jemand anderes helfen. Danke Ihnen allen für Ihre Hilfe.

Verwandte Themen