2016-07-11 13 views
0

ng-if에서 4 가지 조건을 확인해야하며이 조건은 부울 조건입니다. 그 중 하나라도 사실이라면, 나는 어떤 div를 보여줄 필요가있다.ng-if에서 다중 조건 검사

제발 간단하고 좋은 방법이 있나요?

하드
  • 하드
  • 하드
  • 는 일반적으로

을 테스트하기 위해 디버깅하는 읽기 : 일반적으로

<div ng-if="ctrl.survivor || ctrl.doctor || ctrl.patient || ctrl.beneficiary"> 
<div ng-bind-html=" {{ myContent }}"> 
</div> 
</div> 
+2

하지만, 간단한 방법이 아니다 이 논리를 나타 내기 위해; 기능은 본질적으로 동일하게 보일 것입니다. – Claies

+0

@Claies : 감사합니다. 올바른 구문입니까? 저는 ANgular를 처음 사용합니다. 그래도이 코드를 아직 테스트하지 않았습니다. 나는 지금 그것을 할 것이다. 하지만이게 다 잘 보이니? 그리고 예, 컨트롤러에만이 설정을합니다. – Learner

+0

@Claies와 동의합니다. 또한 위에서 언급 한 네 가지 역할 외에 다른 유형의 사용자 역할은 무엇입니까? 당신은 잠재적으로 간단히 논리가 아닙니다의 아이디어를 사용하여 논리 수 있습니다. –

답변

1

는 내부 각도 표현의 복잡한 로직은 코드 냄새입니다 , 부울 논리 또는 내가 작성하거나 코드 리뷰를 작성하는 각도 표현의 복잡성을 나타내는 다른 것을 피하려고합니다. 대신 컨트롤러 메서드에 논리를 추출하고 컨트롤러 메서드를 직접 호출하는 것이 좋습니다. 이것으로 좋은 단위 테스트를 작성할 수 있습니다. 컨트롤러에서

<div ng-if="ctrl.isApplicable()"> 
    <div ng-bind-html=" {{ myContent }}"></div> 
</div> 

: 내가 추천 할 것입니다 마지막 코드는 다음과 같이 보일 것입니다 당신이 컨트롤러 함수 내에서 논리를 넣을 수

class Ctrl { 
    ...  
    isApplicable() { 
    return survivor || ctrl.doctor || ctrl.patient || ctrl.beneficiary; 
    } 
    ... 
}