2017-07-03 3 views
0

Derzeit bin ich in einem Problem stecken, wo ich einige Fragen und Schlüssel in Daten Ich möchte die Daten anzeigen ist so, dass zuerst mein Schlüssel sollte dann erscheinen meine Daten das Problem ist in meinen Datenumgekehrte Objekte von Objekten angularjs

{ 
    "0": [ 
    { 
     "question": "How often is real property re-assessed (or revalued)?", 
     "id": 1, 
     "section": "Assessment", 
     "sectionId": 2, 
     "check": true, 
     "index": 0 
    }, 
    { 
     "question": "How often second?", 
     "id": 3, 
     "section": "Assessment", 
     "sectionId": 2, 
     "check": true, 
     "index": 0 
    }, 
    { 
     "question": "How often third?", 
     "id": 2, 
     "section": "Assessment", 
     "sectionId": 2, 
     "check": true, 
     "index": 0 
    }, 
    { 
     "key": "Survey Meta Data" 
    } 
    ], 
    "1": [ 
    { 
     "question": "When are New Assessment Notices sent out?", 
     "id": 3, 
     "section": "Assessment", 
     "sectionId": 2, 
     "check": true, 
     "index": 1 
    }, 
    { 
     "key": "Assessment" 
    } 
    ] 
} 

wenn i ng-repeat mit diesen Daten verwende ich so etwas wie dieses bekam:

<div ng-repeat="data in viewQuestions"> 
<div class="panel panel-default" ng-repeat="value in data"> 
    {{value.key}} 

    label>{{value.question}} </label> 

    </div> 
     </div> 

meine Fragen werden zuerst angezeigt und dann Taste angezeigt, aber ich mag den Schlüssel zuerst angezeigt werden und th en die Fragen Ich kenne das Problem die Fragen werden zuerst angezeigt, weil sie zuerst eingefügt dann Datenschlüssel sind.

Gibt es eine Methode, die ich die Daten umkehren kann so Schlüssel angezeigt wird zunächst dann meine Fragen

Antwort

0

Was Sie brauchen, ist Daten Massieren die Datenstruktur, um das Format zu ändern, die Sie benötigen.

var processedData = []; 
angular.forEach(data, function(item) { 
    var section = { questions: [] }; 

    angular.forEach(data, function(question) { 
    if (question.key) { // this is key, not question 
     section.key = question.key; 
    } 
    else { 
     section.questions.push(question); 
    } 
    }); 

    processedData.push(section); 
}); 
+0

Frage .key ist nichts seine Daten .question –

+0

@KumailHussain Sie haben Array von Arrays in Ihren Daten, müssen Sie sie möglicherweise kombinieren? – Icycool

+0

was meinst du mit kombinieren? –

0

Nach dem Graben nach oben kam ich mit einer Lösung, die perfekt funktioniert gut: zuerst das Array umkehren dieses Filters:

.filter("reverse", function(){ 
    return function(items){ 
     return items.slice().reverse(); // Create a copy of the array and reverse the order of the items 
    }; 
}); 

und in html fügen Sie einfach diese Zeile

<div class="panel panel-default" ng-repeat="value in data |reverse"> 

jetzt Schlüssel zuerst angezeigt werden dann die Fragen

Verwandte Themen