Masalah:
Anda sedang cuba menggunakan Underscore templat untuk memaparkan HTML, tetapi menghadapi ralat "Pembolehubah Tidak Ditakrifkan." Kod yang anda gunakan ialah:
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();
Jawapan:
Isunya terletak pada cara templat Underscore dipaparkan. Dalam versi Underscore sebelumnya, anda boleh menghuraikan dan mengisi templat sekali gus, tetapi dalam versi moden, ini telah berubah.
Untuk menyelesaikan ralat, anda perlu:
Begini rupa kod itu:
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();
Kod yang dikemas kini ini akan memaparkan templat menggunakan data yang disediakan dengan betul.
Atas ialah kandungan terperinci Mengapa Saya Mendapat 'Ralat Penyampaian Templat Underscore: Pembolehubah Tidak Ditakrifkan'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!