/ / JSON innerhalb von ng-repeat - angularjs analysieren

JSON in ng-repeat - angularjs analysieren

Ist es möglich, JSON innerhalb einer ng-Wiederholung zu analysieren? Ich habe sowohl JSON.parse als auch angular.fromJson ausprobiert.

    <div ng-repeat="x in JSON.parse(element.info)">
{{x.key}}
</div>

Es kann hier überprüft werden: http://jsfiddle.net/y4qje54o/1/

Antworten:

1 für die Antwort № 1

AngularJS behandelt alle ng-Wiederholungen mit einer $ UhrModul im Kern verschachtelt und fest codiert. Wenn Sie versuchen, ein unkorrektes ng-repeat zu schreiben, wird dies zu einem Log-Fehler-Spam führen, was auf das "Neuladen" der ng-repeat-Schleife zurückzuführen ist.

Wenn Sie eine JSON-Analyse in eine Schleife einfügen, führt dies zu einem enormen Leistungsausfall. Vom Controller werden Sie es einmal tun.

Beachten Sie, dass die Leistung gleich ist, wenn die Ansicht die Daten einmal generiert hat. Aber Sie werden MVC-Muster verlieren. Pass auf es auf.


1 für die Antwort № 2

Warum willst du das nicht tun?

var ngApp = angular.module("ngApp",[]);
var ngCtrl = ngApp.controller("ngCtrl",["$scope", function($scope){

$scope.elements = [];
$scope.element = {};
$scope.element.title = "first element";
//this comes from DB like this(as string)
$scope.element.info = JSON.parse("[{"key":"value1"},{"key":"value2"}]");

$scope.elements.push($scope.element);
}]);

0 für die Antwort № 3

Überprüfen Sie es hier: https://jsfiddle.net/y4qje54o/4/

Die gleichen Ergebnisse, aber ich habe es mit verwendet split, slice & indexOf Anstatt von JSON.parse.

Code:

<div ng-repeat="x in temp=angular.equals(temp,element.info.slice(1, -1).split(","))?temp:element.info.slice(1,-1).split(",")">
{{x.slice(x.indexOf(":")+2, -2)}}
</div>