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

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

DDD
DDDオリジナル
2024-11-13 06:11:02908ブラウズ

Why am I getting an

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

Backbone.js の提供された例では、アンダースコアを使用するとエラーが発生しますテンプレート。 「変数が定義されていません」というエラー メッセージが表示されます。問題を理解して解決するために、Underscore テンプレートの使用法を詳しく見てみましょう。

Underscore の古いバージョン (バージョン 1.7.0 より前) では、_.template 関数の 2 番目の引数は、次のことを提供するために使用されていました。テンプレート用のデータ。これにより、テンプレートとデータを 1 行で指定できる簡潔な構文が可能になりました。

ただし、Underscore バージョン 1.7.0 では、_.template の 2 番目の引数はテンプレート オプションに対応するために再利用されています。これは、2 番目の引数にデータを直接指定する以前の方法が無効になったことを意味します。

問題を解決するには、_.template 関数を使用して Underscore テンプレートをコンパイルし、結果の関数を実行する必要があります。入力されたテンプレートを取得します。正しい構文は次のとおりです:

var tmpl = _.template(template_string);
var html = tmpl(data);

提供されている Backbone.js の例の場合、次のコードでエラーが解決されます:

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

まずテンプレートをコンパイルしてから実行します。指定したデータを使用すると、「変数が定義されていません」というエラーが解消され、テンプレートが正しいコンテンツをレンダリングできるようになります。

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

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