Bootstrap-UI 자동 검색 결과 목록에 둘 이상의 속성을 표시하시겠습니까?
UI 부트스트랩 자동 검색을 사용하고 있습니다.그것은 훌륭하게 작동한다!그러나 결과 목록에 여러 개의 속성이나 HTML을 표시할 수 있는지 궁금합니다.일반적인 문제: 동일한 값을 가진 개체를 두 개 이상 반환합니다.하나는 영화이고 하나는 노래인 '놀라운 은총' 리턴 [놀라운 은총, 놀라운 은총]을 찾아라.결과 리스트는 다음과 같이 하고 싶다.
amazing grace | movie
amazing grace | song
...사용자는 자신이 무엇을 선택하는지 정확히 알 수 있습니다.제목 옆에 아이콘이 있으면 더 좋을 것 같아요.즉, 리스트의 각 결과에는 HTML이 포함되어 있습니다.이것들 중 어느 것이라도, 곧바로 실시할 수 있을까요?
에 대해 알아야 할 것은typeahead
http://angular-ui.github.io/bootstrap/의 디렉티브는 AngularJS의 select 디렉티브에서 사용되는 구문을 모방하는 것입니다.바인딩할 모델과 레이블을 선택하는 데 사용되는 모든 식이 각도임을 의미합니다.JS 식즉, 모든 Angular를 사용할 수 있습니다.레이블의 텍스트를 계산하기 위한 JS 식입니다.
예를 들어, 원하는 텍스트를 표시하려면 다음과 같이 쓸 수 있습니다.
typeahead="item as item.title + ' (' + item.type + ')' for item in titles | filter:{title:$viewValue}"
데이터 모델이 다음과 같은 경우:
$scope.titles = [
{title: 'Amazing Grace', type: 'movie'},
{title: 'Amazing Grace', type: 'song'}
];
여기서 작업하는 plunk : http://plnkr.co/edit/VemNkVnVtnaRYaRVk5rX?p=preview
에서 레이블에 대한 복잡한 표현식 쓰기typeahead
속성이 추해질 수 있지만 라벨 계산 로직을 스코프에 표시되는 함수로 이동하는 것을 막을 수는 없습니다.
typeahead="item as label(item) for item in titles | filter:{title:$viewValue}"
어디서label
스코프에 노출되는 함수입니다.
$scope.label = function(item) {
return item.title + ' (' + item.type + ')';
};
다른 플랭크: http://plnkr.co/edit/ftKZ96UrVfyIg6Enp7Cy?p=preview
아이콘에 관한 질문의 경우 - 라벨 표현에 HTML을 포함시킬 수 있지만, 이것은 쓰기 및 유지보수가 어렵습니다.다행히 자동 검색 지시문을 사용하면 다음과 같이 일치하는 항목에 대한 사용자 정의 템플릿을 제공할 수 있습니다.
typeahead-template-url="itemTpl.html"
사용자 지정 템플릿에서는 임의의 식 또는 Angular를 사용할 수 있습니다.원하는 JS 지시문입니다.아이콘을 추가하는 것은 간단한 작업입니다.ngClass
지시:
<script type="text/ng-template" id="itemTpl.html">
<a tabindex="-1">
<i ng-class="'icon-'+match.model.type"></i>
<span ng-bind-html-unsafe="match.model.title | typeaheadHighlight:query"></span>
</a>
</script>
또, 기능하고 있는 plunk:http://plnkr.co/edit/me20JzvukYbK0WGy6fn4?p=preview
꽤 깔끔한 지시문이지, 안 그래?
언급URL : https://stackoverflow.com/questions/18245834/bootstrap-ui-typeahead-display-more-than-one-property-in-results-list
'programing' 카테고리의 다른 글
현재 페이지를 새로 고칠 때 componentWillUnmount()가 호출되지 않음 (0) | 2023.03.17 |
---|---|
JObject 작성 시 인수 예외 (0) | 2023.03.17 |
로컬 패키지json은 있지만 node_module이 없습니다. (0) | 2023.03.17 |
AngularJS: 특정 값이 없는 옵션을 필터링합니다. (0) | 2023.03.17 |
CSV로 변환할 수 있도록 개체를 어레이에 매핑하려면 어떻게 해야 합니까? (0) | 2023.03.17 |