2016-10-18 5 views
0

Ich bekomme meine Daten von einer API, die XML zurückliefern, ich konvertiere es bereits in json, weil ich angularjs, das Feld, das ich brauche, Song-Texte speichern und es verwendet dieses Symbol wenn es jemals zu neuer Zeile gehen sollte. zum Beispiel:Wie man eine neue Zeile aus einem XML-Antwortstring erstellt

You shout it loud↵But I can’t hear a word you say↵I’m talking loud, not saying much↵↵I’m criticized but all your bullets ricochet↵You shoot me down, but I get up 

Beispiel oben ist etwas, das ich bekomme, wenn ich console.log() verwenden, aber wenn ich zeige, um dieses Feld zu meiner HTML-Seite, es ist nur String ohne drin. Ich weiß nicht, warum es nicht in HTML zeigt, und wenn es etwas ist, um neue Zeile zu machen, passiert es nicht.

Ich dachte, durch <br /> zu ersetzen ist es möglich? Ich werde es schätzen, wenn ihr mir dabei helfen könnt.

UPDATE: Ich benutze AngularJS und das Modell mit lyrischem füllen und zeigen Sie sich mit {{lyrischer}} in meinem html

aber wie Sie im Bild sehen können, wenn ich console.log ($ Bereich zu verwenden. Lyrik) string ist gut formatiert, aber wenn ich zeigen das gleiche Modell in HTML, es ist wie dieses

enter image description here

Antwort

0

ich meine, es einfach aus, lasse ich Sie wissen, wie es mit dem gleichen Problem bei jemand anderes Gesicht funktioniert:

wenn ich lyrisch wie diese zeigen:

<p>{{lyric}}</p> 

es meine neue Linien ignoriert . aber wenn ich das benutze:

<pre>{{lyrics}}</pre> 

es funktioniert!

1

Einfache regexr String ersetzen soll sich darum kümmern:

var str = 'You shout it loud↵But I can’t hear a word you say↵I’m talking loud, not saying much↵↵I’m criticized but all your bullets ricochet↵You shoot me down, but I get up'; 
 

 
var formatted = str.replace(/↵/ig, "<br/>\n"); 
 

 
console.log(formatted); 
 
document.write(formatted);

Der regexr findet alles, was den Charakter zwischen den / Zeichen übereinstimmt und ersetzt sie mit einer Standard-Newline \n und einen HTML-Tag line <br/>. Die i und g Flags bedeuten Case Insensitive bzw. Search Global.

Case Insensitive fängt die Zeichen, auch wenn sie in einem anderen Fall sind. Search Global bedeutet, dass wenn Sie eine mehrzeilige Zeichenfolge eingeben, diese in allen Zeilen und nicht nur in der ersten Zeile ersetzt wird.

+0

Vielen Dank, Ihre Methode ist richtig und sollte funktionieren, aber ich weiß nicht, warum in meinem HTML keine neuen Zeilen angezeigt werden, auch in meinem Konsolenprotokoll ist gut formatiert und in neuen Zeilen angezeigt, vermute ich vielleicht in angularjs Die Dinge sind anders, ich fülle das Modell mit Songtexten und zeige es wie {{lyric}} an, aber es ist nicht formatiert und zeigt überhaupt keine neuen Zeilen. –

+0

Ich aktualisiere nur meine Frage und füge ein Foto von meiner Konsole hinzu. –

+0

Es scheint nicht die '
' Tags hinzuzufügen. Können Sie den Code anzeigen, den Sie zum Ändern der Zeichenfolge verwenden? –

Verwandte Themen