Угловой шаблон с ng-repeat не смог отследить значение внутри него - PullRequest
0 голосов
/ 04 октября 2019

У меня есть угловой шаблон, который заполняет список значений в кнопке поиска.

<ul class="dropdown-menu" ng-show="isOpen() && !moveInProgress"
    ng-style="{top: position().top+'px', left: position().left+'px'}"
    role="listbox" aria-hidden="{{!isOpen()}}">
  <li role='option' aria-hidden='true' style='display: none'></li>    
  <li ng-repeat="match in matches track by $index"
      ng-class="{active: isActive($index)}" 
      ng-mouseenter="selectActive($index)" 
      ng-click="selectMatch($index, $event)" 
      role="option" id="{{::match.id}}">
    <div uib-typeahead-match index="$index" match="match"
         query="query" template-url="templateUrl">
    </div>
  </li>
</ul>

, когда я печатаю совпадение сверху, повторяюсь, я получаю объект JSON ниже, вставляя только первый индекс jsonмассив:

{"id":"typeahead-97-1116-option-0",
 "label":"Card/Key Request Informational Guide",
 "model":{
     "short_description":"Card/Key Request Informational Guide",
     "linkToPage":"dea5792147132100ba13a5554ee4902d",
     "published":"06-10-2019",
     "label":"Card/Key Request Informational Guide",
     "type":"kb","query_location":0,"publishedUTC":"06-10-2019",
     "url":"?id=kb_article&sys_id=29ae0b3edbb9fb407ebed77648961951",
     "sys_id":"29ae0b3edbb9fb407ebed77648961951",
     "number":"KB0010366","score":335.9009,"glyph":"file-text-o",
  }
}

в зависимости от типа, который я хочу дать списку заголовок. например, набор типа kb в разделе «Статья знаний» и тип «sc» с названием «Каталог услуг». Список, который я получаю, уже упорядочен по типам.

Пожалуйста, дайте мне знать, как справиться с этим требованием.

Ответы [ 2 ]

0 голосов
/ 04 октября 2019

Создать хеш для поиска:

$scope.typeLookup = {
    'kb': 'Knowledge article',
    'sc': 'Service Catalog',
    // ...
});

Использовать этот хеш в шаблоне:

<li>
    {{typeLookup[match.model.type]}}
</li>
0 голосов
/ 04 октября 2019

Вы можете использовать троичный оператор, чтобы определить значение match.model.type, а затем установить заголовок в зависимости от этого значения.

<li>
    {{match.model.type === 'kb' ? 'Knowledge article' : match.model.type === 'sc' ? 'Service Catalog' : ''}}
</li>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...