Ralat Templat Underscore: "Pembolehubah tidak ditakrifkan"
Dalam contoh yang disediakan untuk Backbone.js, ralat ditemui semasa menggunakan Underscore templat. Mesej ralat berbunyi "Pembolehubah tidak ditakrifkan." Untuk memahami isu dan menyelesaikannya, mari kita mendalami penggunaan templat Underscore.
Dalam versi Underscore yang lebih lama (sebelum versi 1.7.0), argumen kedua untuk fungsi _.template telah digunakan untuk menyediakan data untuk templat. Ini membenarkan sintaks ringkas di mana templat dan data boleh ditentukan dalam satu baris.
Walau bagaimanapun, pada Underscore versi 1.7.0, hujah kedua untuk _.template telah digunakan semula untuk menampung pilihan templat. Ini bermakna kaedah sebelumnya untuk menentukan data secara langsung dalam argumen kedua tidak lagi sah.
Untuk membetulkan isu tersebut, adalah perlu untuk menyusun templat Underscore menggunakan fungsi _.template dan kemudian melaksanakan fungsi yang terhasil. untuk mendapatkan templat yang diisi. Sintaks yang betul ialah:
var tmpl = _.template(template_string); var html = tmpl(data);
Dalam kes contoh Backbone.js yang disediakan, kod berikut akan menyelesaikan ralat:
render: function () { var data = { lat: -27, lon: 153 }; var tmpl = _.template('<%= lat %> <%= lon %>'); this.$el.html(tmpl(data)); return this; }
Dengan menyusun templat dahulu dan kemudian melaksanakan dengan data yang ditentukan, ralat "Pembolehubah tidak ditakrifkan" akan dihapuskan, membolehkan templat memaparkan kandungan yang betul.
Atas ialah kandungan terperinci Mengapa saya mendapat 'Ralat Templat Underscore: Pembolehubah tidak ditakrifkan' dalam kod Backbone.js saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!