ホームページ  >  記事  >  ウェブフロントエンド  >  「アンダースコア テンプレート レンダリング エラー: 変数が定義されていません」というメッセージが表示されるのはなぜですか?

「アンダースコア テンプレート レンダリング エラー: 変数が定義されていません」というメッセージが表示されるのはなぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-23 10:05:17201ブラウズ

Why Am I Getting an

アンダースコア テンプレート レンダリング エラー:「変数が定義されていません」

問題:

アンダースコアを使用しようとしていますHTML をレンダリングするためにテンプレートを使用しましたが、「変数が定義されていません」というエラーが発生しました。使用しているコードは次のとおりです:

var V = Backbone.View.extend({
  el:'body',
  render: function () {
    var data = { lat: -27, lon: 153 };
    this.$el.html(_.template('<%= lat %> <%= lon%>', data));
    return this;
  }
});

var v = new V();

v.render();

答え:

問題は、Underscore テンプレートのレンダリング方法にあります。以前のバージョンの Underscore では、一度にテンプレートを解析して入力できましたが、最新のバージョンではこれが変更されました。

エラーを解決するには、次のことを行う必要があります:

  1. _.template を使用してテンプレートをコンパイルします。
  2. 返された関数を実行して、入力された値を取得しますtemplate.

コードは次のようになります:

var V = Backbone.View.extend({
  el:'body',
  render: function () {
    var data = { lat: -27, lon: 153 };
    var tmpl = _.template('<%= lat %> <%= lon%>');
    this.$el.html(tmpl(data));
    return this;
  }
});

var v = new V();

v.render();

この更新されたコードは、提供されたデータを使用してテンプレートを正しくレンダリングします。

以上が「アンダースコア テンプレート レンダリング エラー: 変数が定義されていません」というメッセージが表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。