Ich habe eine AngularJS-Anwendung, die Daten aus Eingaben sammelt, ein Modell mithilfe von in einen String umwandelt JSON.stringify()
und es einem Benutzer ermöglicht, dieses Modell so zu bearbeiten, dass Eingabefelder aktualisiert werden, wenn das <textarea>
Element aktualisiert wird, und umgekehrt. Eine Art Zwei-Wege-Bindung :)
Das Problem ist, dass der String selbst hässlich aussieht und ich ihn so formatieren möchte:
Und nicht wie es jetzt aussieht:
Irgendwelche Ideen, wie dies erreicht werden kann? Wenn Sie zusätzliche Informationen benötigen, zögern Sie nicht zu fragen. Jede Antwort wird sehr geschätzt und sofort beantwortet.
Danke dir.
PS Ich denke, dies sollte eine Art Direktive oder ein benutzerdefinierter Filter sein. Daten selbst sollten nicht geändert werden, nur die Ausgabe.
quelle
$watch
(basierend auf der Antwort auf die vorherige Frage) über dem Textbereichsmodell a ausführenconsole.log()
und sehen, welchen Wert Sie in der Zeichenfolge für die Eingabetaste erhalten - ich denke, es ist "/ n"Antworten:
Sie können einen optionalen Parameter von verwenden
JSON.stringify()
Beispielsweise:
gibt Ihnen folgendes Ergebnis:
quelle
$$hashKey
Eigenschaften, die der Winkel für die interne Modellverfolgung verwendet,JSON.stringify(object, null, 2)
wobei 2 die Anzahl der Leerzeichen ist.Angular verfügt über eine integrierte
filter
AnzeigeJSON
Beachten Sie die Verwendung des
pre
Tags -tag, um Leerzeichen und Zeilenumbrüche zu erhaltenDemo:
Es gibt auch eine
angular.toJson
Methode, aber damit habe ich nicht herumgespielt ( Docs )quelle
<pre>
Tag keinewhite-space
Eigenschaft aufnormal
oder festgelegt sein sollteno-wrap
. Andernfalls würde Ihr JSON nicht wie gewünscht eingerückt.Wenn Sie JSON als HTML rendern möchten und es reduziert / geöffnet werden kann, können Sie diese Direktive verwenden, die ich gerade erstellt habe, um es schön zu rendern:
https://github.com/mohsen1/json-formatter/
quelle
Zusätzlich zu dem Winkelfilter bereits erwähnt, gibt es auch die Winkelfunktion .
json
toJson()
Mit dem zweiten Parameter dieser Funktion können Sie das hübsche Drucken einschalten und die Anzahl der zu verwendenden Leerzeichen festlegen.
quelle
Ich denke, Sie möchten verwenden, um den JSON-Text zu bearbeiten. Dann können Sie ivarnis Weg benutzen:
und fügen Sie ein Zusatzattribut hinzu, das erstellt werden sollHoffe das kann dir helfen.
quelle
Wenn Sie den JSON formatieren und auch einige Syntaxhervorhebungen vornehmen möchten, können Sie die
ng-prettyjson
Direktive verwenden. Siehe das npm-Paket.So verwenden Sie es:
<pre pretty-json="jsonObject"></pre>
quelle