2014-11-13 2 views
3

유성 템플리트에서 조건부 "and"또는 "or"를 수행하는 방법이 있습니까? 제 3 자 패키지 alanning:roles에서 제공Meteor.js 템플릿 블록의 '또는'조건

{{#if isInRole 'ADMIN' || isInRole 'INSPECTOR'}} 
    ...do some stuff 
{{/if}} 

사용하여 도우미 : 내가 뭘하려고이 같은 것입니다. 이것은 Meteor로 코딩 할 때 여러 번 등장한 것으로 보입니다. 보통 블록 코드의 중복으로 해결할 수 있습니다.하지만 OR 또는 AND 조건을 처리 할 수있는 방법이 이미 존재한다면 정말 좋을 것입니다. 미친 짓이다.

답변

2

핸들 바를 기반으로 한 스페이스 바를 사용하는 유성. 핸들 바에는 논리 연산자에 대한 직접적인 방법이 있습니다.

당신은 당신이

{{#if equals_or isRole "ADMIN,INSPECTOR"}} 
    ...do some stuff 
{{else}} 
    ...do some other stuff 
{{/if}} 

내가 완벽한 솔루션되지 않을 수도 있습니다 할 수있는 HTML에서 그런 다음 Template.helper

Template.registerHelper("equals_or", function(param, arr) { 
    arr = arr.split(","); 
    if (arr.indexOf(param) !== -1) { 
     return true; 
    } 
    else { 
    return false; 
    } 
}); 

을 만들어 or을 처리하기 위해 작은 해결을 할 수 있지만하고있다 작업.

확인하십시오. answer도 확인하십시오.

+0

도우미가 다른 도우미를 그렇게 부를 수 있습니까? isInRole은'alanning : roles' 패키지에 의해 생성 된 전역 템플릿 도우미입니다. 이 특정 인스턴스에 대한 또 다른 대안은 단일 역할 대신 배열을 허용하는 자체 'isInAnyRoles'를 작성하는 것입니다. 아니면 그냥 'alanning : 역할'을 수정하고 커뮤니티에 돌려 주어야합니다. 아마 모든 사람들을위한 더 나은 솔루션 일 것입니다. – CodeChimp

+0

@CodeChimp 실제로 끝에 alanning : 역할을 업데이트 했습니까? 쉼표로 구분 된 기능이 이제 추가되었습니다! http://alanning.github.io/meteor-roles/classes/UIHelpers.html – Alveoli