2
A
回答
2
你必須定義額外的 「自然」 屬性
App.Group = DS.Model.extend
name: DS.attr 'string'
natural_name: (->
# Split string into numeric and non-numeric parts
# and convert numeric parts to actual numbers
# Sort by resulting array of strings and numbers
@get('name').split(/([0-9]+)/g).map (str) =>
if str.match(/[0-9]+/) then parseInt(str, 10) else str
).property('name')
App.GroupsIndexController = Ember.ArrayController.extend
sortProperties: ['natural_name']
1
如果你想使用SortableMixin你可以做這樣的:
childrenSorted: function() {
return Ember.ArrayProxy.createWithMixins(Ember.SortableMixin, {
sortProperties: ['name'],
content: this.get('model.children')
});
}.property('[email protected]')
3
什麼我在我的項目中完成了,是重寫mixin的orderBy函數(https://github.com/emberjs/ember.js/blob/master/packages/ember-runtime/lib/mixins/sortable.js#L52)和這種自然的排序算法取代Ember.compare():https://github.com/overset/javascript-natural-sort
orderBy: function (item1, item2) {
var result = 0,
sortProperties = this.get('sortProperties'),
sortAscending = this.get('sortAscending');
Ember.assert("you need to define `sortProperties`", !!sortProperties);
sortProperties.forEach(function (propertyName) {
if (result === 0) {
naturalSort.insensitive = true;
result = naturalSort(Ember.get(item1, propertyName), Ember.get(item2, propertyName));
if ((result !== 0) && !sortAscending) {
result = (-1) * result;
}
}
});
return result;
}
我爲了能夠更方便地將任何排序功能的排序混入做出了PR,但它被關閉。查看詳情這裏:
https://github.com/emberjs/ember.js/pull/1216 https://github.com/emberjs/ember.js/pull/1562
0
由於灰燼數據1.0(也可能是之前),你可能需要使用Ember.computed.sort
:
相關問題
- 1. Rails使用自然排序順序排序查找和排序
- 2. PHP的自然順序排序
- 3. LINQ和自然排序順序
- 4. 自然或人類排序順序
- 5. Emacs Lisp的自然順序排序
- 6. SortableMixin不排序使用自定義轉換
- 7. Bash排序類似於Windows的自然排序順序'
- 8. 按自然排序順序排序列表<FileInfo>。
- 9. 按自然順序排列圖像?
- 10. 如何改變自然排序順序在XSLT
- 11. 按字母順序排序,然後按字母順序排列
- 12. Android:AutoCompleteTextView - 如何自定義排序順序
- 13. 自然排序
- 14. 如何按長度排序然後按字母順序排列
- 15. 如何使用pycassa get_range以反向排序順序獲取行?
- 16. 反向自然順序使用collections.reverseOrder()
- 17. 自然排序CheckedListbox
- 18. 自然排序NHibernate
- 19. Python自然排序
- 20. sqlalchemy自然排序
- 21. 以數字順序訂購,然後在MySQL中按字母順序排序
- 22. 如何使用混合(字母和數字)元素以自然順序對數組元素進行排序
- 23. ArrayList自然排序
- 24. 按日期排序NSFetchRequest然後按字母順序排序
- 25. 按自然順序對WordPress分類列表排序
- 26. 用SimplePie自定義排序順序
- 27. 用MySQL自然排序嗎?
- 28. 排序順序
- 29. 按字母順序排序元素,然後按數字排序
- 30. 在這個庫中使用StrCmpLogicalW函數的C++自然排序順序shlwapi.dll