ホームページ > 記事 > ウェブフロントエンド > Backbone.js コードで「アンダースコア テンプレート エラー: 変数が定義されていません」というメッセージが表示されるのはなぜですか?
アンダースコア テンプレート エラー: "変数が定義されていません"
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 サイトの他の関連記事を参照してください。