Saya mengisi dropdown melalui penggunaan opsi-ng yang terhubung ke controller yang pada gilirannya memanggil layanan. Sayangnya data yang masuk berantakan dan saya harus bisa mengurutkannya berdasarkan abjad.
Anda pikir sesuatu seperti $.sortBy
akan melakukannya tetapi sayangnya itu tidak berhasil. Saya tahu saya bisa mengatasinya melalui javascript dengan metode pembantu function asc(a,b)
atau sesuatu seperti itu tetapi saya menolak untuk percaya bahwa tidak ada cara yang lebih bersih untuk melakukan ini ditambah saya tidak ingin mengasapi controller dengan metode pembantu. Ini adalah sesuatu yang sangat mendasar pada prinsipnya jadi saya tidak mengerti mengapa AngularJS tidak memiliki ini.
Apakah ada cara melakukan sesuatu seperti $orderBy('asc')
?
Contoh:
<select ng-option="items in item.$orderBy('asc')"></select>
Akan sangat berguna untuk memiliki opsi orderBy
sehingga Anda dapat melakukan apa pun yang Anda inginkan, kapan pun Anda biasanya mencoba mengurutkan data.
selected
. Untuk contoh ini, Anda dapat melakukan sesuatu seperti$scope.selected = $scope.friends[0]
. Lihat biola ini untuk sampel yang berfungsi.f.age as f.name for f in friends | orderBy:'name'
- di sini adalah biola bekerja. Lebih lanjut tentang opsi-ng di sini .<select ng-model="selected" ng-options="f.name for f in friends | orderBy:'name' track by f.id"></selected>
. Menempatkantrack by
setelah filter pesanan tidak intuitif dan jawaban ini adalah hasil pencarian teratas dari google.Anda harus dapat menggunakan filter:
orderBy
orderBy
dapat menerima opsi ketiga untukreverse
bendera.Di sini item diurutkan berdasarkan properti 'nama' dalam urutan terbalik. Argumen ke-2 dapat berupa fungsi pesanan apa pun, sehingga Anda dapat mengurutkan aturan apa pun.
@lihat http://docs.angularjs.org/api/ng.filter:orderBy
sumber
http://jsfiddle.net/Nfv42/65/
sumber
Bagi siapa saja yang ingin mengurutkan variabel di lapisan ketiga:
Anda bisa melakukannya seperti ini
sumber