1
Учитывая следующее, я хочу заказать этот список displayOrder
Угловые: нг-повторить OrderBy фильтр
angular.module('app').value('sidebarMenus', {
'Sites': {
displayName: 'Sites',
displayOrder: 0
},
'Inspections': {
displayName: 'Inspections',
displayOrder: 1,
items: [
{ name: 'Create New', state: 'Admin.UserList' }
]
},
'Permits': {
displayName: 'Permits',
displayOrder: 2
},
'Compliance': {
displayName: 'Compliance',
displayOrder: 3
},
'Accounts': {
displayName: 'Accounts',
displayOrder: 4
},
'Documents': {
displayName: 'Documents',
displayOrder: 5
},
'Queries': {
displayName: 'Queries',
displayOrder: 6
},
'Reports': {
displayName: 'Reports',
displayOrder: 7
},
'Admin': {
displayName: 'Admin',
displayOrder: 8,
items: [
{ name: 'Users', state: 'Admin.UserList' },
{ name: 'Groups', state: 'Admin.GroupList' },
{ name: 'Workgroups', state: 'na' },
]
}
});
у меня есть, но это не работает. По какой-то причине это сортируется по алфавиту по умолчанию.
<li data-ng-repeat="item in sidebar.menus | orderBy: item.displayOrder">
<a href="javascript:;" data-ng-bind="item.displayName" data-ng-click="sidebar.menu.setMenu(item)"></a>
</li>
Результат
Accounts
Admin
Compliance
Documents
Inspections
Permits
Queries
Reports
Sites
В [tutorial] (http://docs.angularjs.org/tutorial/step_04) 'orderBy' основан на свойстве самой модели, который хранит имя свойства, которое вы хотите заказать. Добавьте свойство 'orderProp =" displayOrder "', затем используйте его в 'repeat':' orderBy: orderProp'. –
@ danradu - Это не сработало, все еще сортируется в алфавитном порядке. – Sam
Вы попробовали только элемент data-ng-repeat = в sidebar.menus | orderBy: «displayOrder» для меня, используя пример в учебнике, который работал без проблем. Какую версию Angular вы используете? –