ng-repeat orderBy позиция не работает

0

Я пишу Угловое приложение, в котором есть меню, я разделил его так:

HTML:

<ul class="nav navbar-nav" ng-repeat="menuItem in menu |  orderBy:'position'">
    <!-- Home  Mega Menu -->
    <li class="mega-menu">
        <a href="index-corporate.html">{{menuItem.testo}}</a>
    </li>
    <!-- Shortcode Menu Ends -->
    <!-- Header Search -->
    <li class="hidden-767" ng-show="$last">
        <a href="#" class="header-search">
            <span>
                <i class="fa fa-search"></i>
            </span>
        </a>
    </li>
</ul>

JS:

...
$scope.menu = [
    {testo: 'Home', link: 'index.html', position: 1},
    {testo: 'Due', link: 'index.html', position: 2},
    {testo: 'Tre', link: 'index.html', position: 3},
];
...

В результате получается так: Tre, Due, Home вместо рендеринга по позиции Home, Due, Tre.

Как это исправить?

  • 0
    Используйте -menuItem.position в аргументе orderBy
  • 0
    Здесь работает plnkr.co/edit/LEDDI0TX6OvKj0gNJrSl?p=preview в чем проблема?
Показать ещё 1 комментарий
Теги:

1 ответ

1
Лучший ответ

Просто используйте reverse как описано в документации:

 <ul class="nav navbar-nav" ng-repeat="menuItem in menu |  orderBy:'position':reverse">
  • 0
    в его случае OP не нужно упоминать reverse параметр, см. здесь plnkr.co/edit/LEDDI0TX6OvKj0gNJrSl?p=preview
  • 0
    Это работает, но почему я должен изменить порядок? Я ставлю 1, 2, 3, почему наоборот?
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню