2014-04-10 3 views
1

필자는 사용자 정의 각도 필터 인 ellipsesFilter를 사용하여 잘라내어 특정 테이블에 맞지 않는 단어에 줄임표를 추가하는 데 사용합니다. 이처럼각도 필터의 매개 변수를 조건부로 변경하는 방법

는 : app.flagtrue 경우

<div>{{app.firstLastName | ellipsesFilter:13 }}</div> 

그러나, 우리는 firstLastName의 말에 다른 단어를 추가 할 수 있습니다. 그렇다면 타원 필터 매개 변수를 다르게 지정해야합니다. 이상적으로, 내가이 일을 여러 가지 방법을 시도했습니다이

{{app.firstLastName | app.flag? : ellipsesFilter:10 : ellipsesFilter:13}} 

같은은 아무도 일하지했다. 누구나 어떻게 알아?

+0

'ellipsesFilter'에 값의 배열을 전달하고 그 배열의 내용을 조정하는 것은 어떻습니까? –

+0

@Oliver 어떻게 부울 값을 기반으로 배열의 내용을 조정합니까? – Veg

+0

그렇지 않습니다. 컨트롤러에서 그렇게 할 수 있습니다. 그렇지 않으면 약간 지저분해질 수 있습니다. 슬프게도, 나는 당신의 경우에 효과가 있다는 것을 알고있는 간단한 예제 코드가 없다. –

답변

2

당신이었다 가까운 .. 실제로이 같은 매개 변수 값을 전환 할 삼항 연산자를 사용할 수 있습니다

{{name | ellipsesFilter:flag ? 10 : 13}} 

여기에 데모가 있습니다. http://plnkr.co/zWsNk1VzVgBZeoGb5NCP

1

범위의 값을 사용할 수 있습니까? 기능을 수용하기에 충분

<div>{{app.firstLastName | ellipsesFilter:lengthToFilter }}</div> 
//js 
$scope.lengthToFilter = $scope.app.flag? 13:10 

그것 또한 스마트 :

<div>{{app.firstLastName | ellipsesFilter:getLengthToFilter() }}</div> 
//js 
$scope.getLengthToFilter = function(){ 
     return $scope.app.flag? 13:10 ; 
} 
관련 문제