> 웹 프론트엔드 > JS 튜토리얼 > Handlebars.js {{#if}} 조건부에서 'OR'과 같은 논리 연산자를 사용할 수 있나요?

Handlebars.js {{#if}} 조건부에서 'OR'과 같은 논리 연산자를 사용할 수 있나요?

Linda Hamilton
풀어 주다: 2024-11-13 16:27:02
원래의
194명이 탐색했습니다.

Can I Use Logical Operators Like

Handlebars.js에서 논리 연산자 사용 {{#if}} 조건부

Handlebars.js는 강력한 {{#if}} 주어진 표현식을 기반으로 콘텐츠를 조건부로 렌더링하는 조건부 연산자입니다. 그러나 표준 연산자는 단순한 참/거짓 조건만 지원합니다. 이로 인해 더 복잡한 논리적 관계를 표현하는 능력이 제한됩니다.

문제:

OR(||)와 같은 논리 연산자를 핸들바에 통합할 수 있습니까? .js {{#if}} 조건부 연산자?

답변:

handlebars.js는 기본적으로 조건부 연산자에서 논리 연산자를 지원하지 않지만 블록 도우미를 활용하여 이 기능을 구현하는 것이 가능합니다. 블록 도우미는 핸들바로 등록하여 기능을 확장할 수 있는 사용자 정의 함수입니다.

논리 조건을 처리하기 위해 'ifCond'라는 블록 도우미를 등록하는 방법은 다음과 같습니다.

Handlebars.registerHelper('ifCond', function(v1, v2, options) {
  if(v1 === v2) {
    return options.fn(this);
  }
  return options.inverse(this);
});
로그인 후 복사

이 도우미 두 값 v1과 v2가 동일한지 확인합니다. 그렇다면 'true' 블록(options.fn)의 내용을 반환합니다. 그렇지 않으면 'false' 블록(options.inverse)의 내용을 반환합니다.

템플릿에서 이 도우미를 사용하려면 비교하려는 값으로 호출하면 됩니다.

{{#ifCond v1 v2}}
    {{v1}} is equal to {{v2}}
{{else}}
    {{v1}} is not equal to {{v2}}
{{/ifCond}}
로그인 후 복사

이렇게 하면 v1과 v2가 같은지 여부에 따라 두 블록 중 하나가 출력됩니다.

이 기능을 달성하기 위해 블록 도우미를 사용하는 동안 그렇지 않을 수도 있습니다. Handlebars의 철학에 맞춰 기능을 확장하고 템플릿에서 복잡한 논리적 관계를 처리할 수 있는 방법을 제공합니다.

위 내용은 Handlebars.js {{#if}} 조건부에서 'OR'과 같은 논리 연산자를 사용할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿