Я сделал два файла, один для HTML, где скрипт определен с идентификатором id = 'search_template' и другим файлом javaScript, я упомянул «Вид».jQuery не может отобразить html, который будет использоваться шаблоном Underscores
В рендер функции зрения, я подбирая скрипт в HTML-файл с
id='search_template'
с помощью JQuery и передать его через JQuery-х
.html()
, чтобы преобразовать его в строку, а затем пропуская его до 0 Подтверждения
_.template (String)
Однако, Подчеркивание вызывает ошибку
Uncaught TypeError: Невозможно вызвать метод «заменить» нуль
Я считаю, что Jquery не может преобразовать скрипт с идентификатором = «search_template» в строке.
SearchView = Backbone.View.extend({
initialize: function(){
_.bindAll(this, 'render');
},
render: function(){
var template = _.template($("#search_template").html());
$("body").html(template);
}
});
var search_view = new SearchView({ el: $("#search_container") });
search_view.render();
Я удалил часть JQuery из функции визуализации и попытался явным образом передавая строку HTML без использования функции .html(): -
render: function(){
var template = _.template("<label><%= search_label %></label>
<input type=\"text\" id=\"search_input\" />
<input type=\"button\" id=\"search_button\" value=\"Search\" />");
$("body").html(template);
}
И это отлично работает. Почему это не работает, когда я использую jQuery, чтобы забрать скрипт с помощью $ ("search_template"). Также, когда я объединять файлы HTML и JavaScript, он работает. Вот фрагмент из HTML-файла: -
<script type="text/template" id="search_template">
<label>Search here : </label>
<input type="text" id="search_input" />
<input type="button" id="search_button" value="Search" />
</script>