2017-01-27 3 views
0

두 속성 (title, params)을 보유하고있는 객체 배열을 가지고 있습니다. 다음 필터를 적용 할 때 일치하는 모든 값이 검색됩니다.ng-repeat에서 번역 된 값을 필터링하는 방법

문제는 type.title 값이 변환되지 않는 것입니다 내가 제목 속성은 $select.search 값과 일치 번역 배열 항목을 필터링해야

<ui-select-choices repeat="type in codeLists.reportTypes | filter: $select.search"> 
+0

그런 다음 당신은 아마 사용자 정의 필터를해야 번역 된 항목을 검색하는 사용자 정의 필터를 생성

<ui-select-choices repeat="type in codeLists.reportTypes | filter: { translatedTitle: $select.search }"> 

2) : 당신은 당신의 필터에서 사용할 수 있습니다/search function – devqon

+0

이 경우 앱 광 필터를 추가하고 싶지 않지만 각도 필터의 구문을 이해할 수 없습니다. 이는 아마도 도움이 될 수 있습니다. – Zveratko

+1

당신은 어떻게 번역합니까? 'type.title'속성은 어떻게 생겼습니까? 'ng-translate '를 사용합니까? – devqon

답변

1

당신은이 두 가지 옵션이 있습니다

1) 사전 번역 모든 제목 다음

$scope.cldeLists.reportTypes.forEach(function(item) { 
    item.translatedTitle = $filter("translate")("docKey." + item.title); 
}); 

app.filter("translatedPropertyFilter", function($filter) { 
    return function(item, property, searchString, prefix) { 
     if (!prefix) prefix = "";    

     return $filter("translate")(prefix + item[property]).indexOf(searchString) > -1; 
    } 
}); 

사용법 :

<ui-select-choices repeat="type in codeLists.reportTypes | translatedPropertyFilter:'title':$select.search:'docKey.'"> 
+0

[여기] (http://stackoverflow.com/a/23569180/294426)의 구문을 이해합니까? – Zveratko

+0

예, 그렇지만 일반 '선택'입니다. 옵션을 표시하기위한 자체 템플리트가있는'angular-ui-select'를 사용하고 있습니다. 따라서이 경우에는 해당 솔루션을 사용할 수 없습니다. – devqon