5

Tôi có một mô hình động dữ liệu đến trong thông qua một WebSocket, trông như thế này:Sử dụng orderBy trên ng-repeat với một mảng đa chiều

var results = [ 
    [ 
     {name:'A'}, 
     {price: 0.00} 
    ], 
    [ 
     {name:'C'}, 
     {price: 0.00} 
    ], 
] 

Tôi đang sử dụng tôi ng-repeat như sau:

ng-repeat="result in results" 

Bất cứ khi nào tôi cần phải truy cập vào một trong những mảng trong mảng kết quả tôi làm:

result[0].name 

vấn đề tôi đang gặp là ord erBy lọc trên ngRepeat dường như không cho phép tôi làm điều này:

ng-repeat="result in results | orderBy: result[0].name 

Có lẽ đó là một sự hiểu lầm cơ bản của công trình như thế nào kiễu góc, nhưng tôi không hiểu tại sao điều này sẽ không làm việc. Cú pháp không chính xác, hay là do mô hình dữ liệu của tôi là động? Tôi có nên thiết lập phạm vi $. $ Áp dụng ở đâu đó không?

Tôi đã thử với dấu ngoặc kép và tôi đã cố gắng thiết lập vị từ trong hàm phân tích dữ liệu ban đầu, đặt biến vị ngữ cho từng trường hợp của result.name khi nó đi qua, nhưng điều này cũng không công việc.

Mọi trợ giúp đều được đánh giá cao.

+0

đọc 'tài liệu orderBy', họ giải thích những gì bạn đang yêu cầu – charlietfl

+0

@tymeJV: Vấn đề là mảng được chứa mảng, không phải đối tượng duy nhất. –

+0

@HimmetAvsar - Ahh, không thấy điều đó trên cái nhìn đầu tiên của tôi. – tymeJV

Trả lời

10

Câu hỏi này thực sự thú vị. Vì orderBy sẽ sử dụng đối tượng hiện tại, bạn phải gán chuỗi thứ tự tương đối.

này sẽ làm các trick:

ng-repeat="result in results | orderBy: 'this[0].name' 
+0

Brilliant! Cảm ơn một loạt @HimmetAvsar, đó là chính xác nó. –