ホームページ >ウェブフロントエンド >jsチュートリアル >Backbone.js で「アンダースコア テンプレート変数が定義されていません」というエラーが発生するのはなぜですか?
Backbone.js では、アンダースコア テンプレートを使用して HTML を動的に生成するのが一般的ですが、以前のコード スニペットでは「変数が定義されていません」が発生する可能性があります「エラー。この記事では、この問題が発生する理由とその解決方法について説明します。
以前は、次の構文を使用して 1 つのステップでアンダースコア テンプレートを解析して入力できました。
var html = _.template(template_string, data);
ただし、Underscore バージョン 1.7.0 以降では、テンプレートの概念が導入されました。オプション。_.template() の 2 番目の引数として明示的に指定する必要があります。これらのオプションを使用すると、テンプレートの動作をきめ細かく制御できます。
Underscore テンプレートを正しくコンパイルして実行するには、次の手順に従います。
これは次のように表すことができます:
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 中国語 Web サイトの他の関連記事を参照してください。