/ / Parsing JSON all'interno di ng-repeat - angularjs

Parsing JSON all'interno di ng-repeat - angularjs

È possibile analizzare JSON all'interno di una ng-repeat? Ho provato sia JSON.parse che angular.fromJson.

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

Può essere controllato qui: http://jsfiddle.net/y4qje54o/1/

risposte:

1 per risposta № 1

AngularJS gestisce tutte le ng-repeat con $ watchmodulo annidato e codificato nel core. Se provi a scrivere una ng-ripetizione errata causerà un errore di log spam, ciò è dovuto al "ricaricamento" del ciclo ripetizione ng.

Se si inserisce un analisi JSON all'interno di un ciclo, si verificherà un'enorme interruzione delle prestazioni. Dal controller lo farai una volta.

Si noti che se la vista generasse i dati una volta, le prestazioni saranno uguali. Ma perderete il pattern MVC. Abbi cura di questo.


1 per risposta № 2

Perché non vuoi fare così?

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 per risposta № 3

Controlla qui: https://jsfiddle.net/y4qje54o/4/

Stessi risultati, ma l'ho fatto usando split, slice & indexOf invece di JSON.parse.

Codice:

<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>