2

映画のリストを表示しようとしています。それぞれにタイトル、シリーズ名、シリーズ番号が含まれます。

これらの映画を並べ替える方法は、同じシリーズの映画をグループ化し、そのグループ内でシリーズ番号で並べ替えることです。リスト全体がタイトル順に並べ替えられています (映画にシリーズ名がある場合を除き、その場合は明らかにシリーズ名で並べ替えられます)。たとえば、次の映画があるとします。

Up ( no series )
500 Days of Summer ( no series)
Alien ( series: 'Alien', seriesnumber: 1 )
Aliens ( series: 'Aliens', seriesnumber: 2 )
Alien Resurrection ( series: 'Alien Resurrection, 'seriesnumber: 4 )
Alien 3 ( series: 'Alien 3, 'seriesnumber: 3 )

それらは次のように注文されます。

500 Days of Summer
Alien
Aliens
Alien 3
Alien Resurrection
Up

SQL クエリでこの順序付けを既に達成しているので、ng-repeat にフィルターを適用しない限り、これらのアイテムを意図した順序で最初に表示できます。(疑問に思っている方のために説明すると、SQL クエリの ORDER BY は次のとおりです。

ORDER BY CASE WHEN seriesName is NOT NULL THEN seriesName ELSE title END

ng-repeat の order by を使用してこの種の順序を取得する方法はありますか? 私がそれを ng-repeat に入れたい唯一の理由は、ユーザーがタイトルを追加できるようにすることです。追加されたときに正しく順序付けられるようにするためです。

4

2 に答える 2

0

orderByまた、JavaScript の行数を節約できる配列も受け取ります。

<div ng-repeat="data in datum | orderBy: ['name', 'ip']">

ここを参照してください:http://jsfiddle.net/xjcw6/

于 2014-04-17T21:36:42.440 に答える