2016-04-22 3 views
-1

Ich bin durch eine Liste von Objekten, die ich an den Benutzer zurückgeben, aber ich möchte ein Komma zwischen den einzelnen Objekten hinzufügen, aber ich habe Probleme, dies richtig zu tun.Trennen von Objekten in zurückgegebenen Ergebnis durch ein Komma

dies ist, wie ich die Objekte immer bin:

function(self, classType){ 
    if(Array.isArray(classRoom.students)){ 
     self.students(classRoom.students.map(function(student){ 
      return new StudentViewM(student); 
     }).join(', ')); 
    } 
} 

Dies ist, wie mein Objekt aussieht:

self = Object { id: "5489443rjlb0ba113f5567533", className: "Art History"....} 
student = Object { id:"khdjkhsdfieowe32323432", name: "John Smith"...} 

Das ist meine Ansicht:

<div data-bind="foreach: students"> 
    <span data-bind="text: studentName"></span> 
</div> 

Aktuelle Fehler:

Unable to process binding "foreach: function(){return students }"(…) 

Wo kann ich ein Komma hinzufügen, damit dem Benutzer angezeigt wird, dass die Objekte in der Anzeige durch Komma getrennt sind.

+0

die Liste der Objekte können sehen ... – JordanHendrix

+0

'Karte()' erstellt ein Array, alles, was Sie brauchen würde eine durch Komma getrennte Zeichenfolge zu erhalten, ist '.join() ' – adeneo

+0

Zusätzlicher Kontext wird benötigt, um eine Antwort auf diese Frage zu formulieren. Wir müssen die fraglichen Objekte sehen. classRoom, self und StudentViewM. Es scheint, dass Sie das ',' nur im Display wünschen. Wenn dies der Fall ist, müssen wir auch die Anzeigelogik sehen. – MattSizzle

Antwort

3

Mit Array#join, möglicherweise

self.students(classRoom.students.map(function(student){ 
    return new StudentViewM(student); 
}).join(', ')); 
+1

Meine Vermutung ist, dass das der OP wollte. – MattSizzle

+0

standardmäßig 'Joins Joins von' ', – isvforall

+1

@isvforall, ich weiß, aber es sieht schlecht aus. –

Verwandte Themen