> 웹 프론트엔드 > JS 튜토리얼 > Backbone.js에서 '밑줄 템플릿 변수가 정의되지 않음' 오류가 발생하는 이유는 무엇입니까?

Backbone.js에서 '밑줄 템플릿 변수가 정의되지 않음' 오류가 발생하는 이유는 무엇입니까?

Linda Hamilton
풀어 주다: 2024-12-02 16:05:17
원래의
376명이 탐색했습니다.

Why Am I Getting an

Underscore 템플릿 변수가 정의되지 않음 오류가 해결되었습니다

Backbone.js에서는 Underscore 템플릿을 사용하여 HTML을 동적으로 생성하는 것이 일반적이지만 이전 코드 조각에서는 "변수가 정의되지 않음"이 발생할 수 있습니다. " 오류. 이 문서에서는 이 문제가 발생하는 이유와 해결 방법을 설명합니다.

문제

과거에는 Underscore 템플릿을 구문 분석하고 다음 구문을 사용하여 단일 단계로 채울 수 있었습니다.

var html = _.template(template_string, data);
로그인 후 복사

변경사항

그러나 Underscore 버전 1.7.0 이상에서는 템플릿 옵션 개념이 도입되었습니다. _.template()의 두 번째 인수로 명시적으로 제공됩니다. 이러한 옵션을 사용하면 템플릿 동작을 세밀하게 제어할 수 있습니다.

솔루션

Underscore 템플릿을 올바르게 컴파일하고 실행하려면 다음 단계를 따르세요.

  1. 템플릿을 컴파일합니다. _.template(template_string)을 사용합니다.
  2. 채울 데이터로 반환된 함수를 실행합니다. template.

다음과 같이 나타낼 수 있습니다.

var tmpl = _.template(template_string);
var html = tmpl(data);
로그인 후 복사

Airbnb로 템플릿을 구현하는 방법을 보여주는 다음 코드 스니펫을 고려하세요. 휴가용 임대주택 데이터 세트:

var V = Backbone.View.extend({
  el: 'body',
  render: function() {
    var data = [
      {
        id: 1,
        lat: -27,
        lon: 153
      },
      {
        id: 2,
        lat: -33,
        lon: 151
      }
    ];
    var tmpl = _.template('<li><%= id %>. <%= lat %>, <%= lon %></li>');
    var html = data.map(tmpl).join('');
    this.$el.html(html);
    return this;
  }
});

var v = new V();

v.render();
로그인 후 복사

올바른 템플릿 구문을 따르면 Backbone.js 애플리케이션에서 Underscore 템플릿을 효과적으로 사용할 수 있습니다.

위 내용은 Backbone.js에서 '밑줄 템플릿 변수가 정의되지 않음' 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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