2013-12-12 2 views
2

나는 다음과 같은 형식을 취할 수있는 데이터를 가지고 : 다음 작업을 수행 할 경우중첩 NG 반복, 자연 정렬 키

var data = 
{ 
0:[1:"a", 2:"b", 11:"c", 22:"d"], 
1:[1:"e",2:"f",11:"g",22:"h"] 
} 

가 :

<div ng-repeat="(key, value) in data"> 
    <div ng-repeat="(innerKey, innerValue) in value"> 
     {{innerKey}} 
    </div> 
    <br/> 
</div> 

이 나에게 줄 것이다 :

1 11 2 22 
1 11 2 22 

키의 문자열 값 비교가 아닌 키의 숫자 값으로 정렬되기 때문에

,210

내가 진정으로 원하는 것은 :

1 2 11 22 
1 2 11 22 

어떤 제안?

+1

이 일부 올바른 방향으로 당신을 가리 킵니다 될 수있다 http://stackoverflow.com/questions/19287716/skip-ng-repeat-json-ordering-in-angular-js/19300860#19300860 – Cherniv

+0

데이터가 _anyway_에서 정렬되지는 않습니다. 키의 순서는 구현 (V8 또는 Spidermonkey)에 따라 다르지만 의존해야하는 것은 아닙니다. 컨트롤러에서 키를 추출하고'ng-repeat'에'(k, v) in data' 폼을 사용하는 대신 원하는 방식으로 정렬해야합니다. –

+0

당신이 게시 한 것이 올바른 JS라고 생각하지 않습니다. 저는'var data' 부분을 의미합니다. –

답변

0

데이터를 약간 재구성 할 수 있다면 시도해 볼 수 있습니다. 핵심 문제를 단순화하기 위해 중첩 된 데이터를 제거했습니다.

http://jsfiddle.net/rsmclaug/BHF9C/

또한, 그대로 데이터가 유효한 배열 구문 아니다.

<div ng-repeat="item in data | orderBy:'key'"> 
    {{item.key}} - {{item.value}} 
</div> 

$scope.data = [ 
    {key: 1, value: "a"}, 
    {key: 12, value: "c"}, 
    {key: 2, value: "b"}, 
    {key: 22, value:"d"} 
];