Maison > Questions et réponses > le corps du texte
$scope.data=[
{"type":"00",
"obj":"[{"name":"a1","age":21},{"name" :"a2","age":21},{"name":"a3","age":21 }]"},
{"type":"01",
"obj":"[{"name":"a1","age":21},{"name":"a2" ,"age":21},{"name":"a3","age":21}]"}
]
Modèle de page
<ul ng-repeat="élément dans les données">
<li ng-repeat="détail dans item.obj">{{detail.name}}{{detail.age}}</li>
</ul>
Mais parce que item.obj n'est pas un tableau mais un objet chaîne. Ma méthode actuelle consiste simplement à contrôler. Bouclez le tableau de données dans le contrôleur et convertissez l'objet obj en json. Cependant, cette méthode n'est pas efficace car elle nécessite une boucle pour modifier les données dans le contrôleur
Je voudrais donc demander s'il existe un moyen de changer. l'élément sur la page obj est converti en un objet tableau, ce qui rend ng-repeat efficace, similaire à
<li ng-repeat="détail dans {{item.obj|Méthode de filtrage}}">{{detail.name}}</li>Méthodes principales ou autres méthodes réalisables,
过去多啦不再A梦2017-05-15 17:10:44
angular.module('app', [])
.filter('jsonParse', function() {
return function (str) {
try{
return JSON.parse(str);
}catch (e){
return str;
}
}
})
<ul ng-repeat="item in data">
<li ng-repeat="detail in item.obj | jsonParse">{{detail.name}}{{detail.age}}</li>
</ul>