我已經制作了兩個文件,一個用於HTML,其中腳本使用id ='search_template'定義,另一個javaScript文件是我提到的「視圖」。jQuery無法呈現html以供下劃線的模板使用
鑑於渲染功能,我拿起在HTML文件中的腳本使用jQuery
id='search_template'
並使其通過的jQuery的
.html()
將其轉換成字符串,然後將它傳遞給下劃線的
_.template (String)
但是,Underscore會拋出錯誤
遺漏的類型錯誤:無法調用空
的「替換」我相信jQuery是無法腳本轉換用id =「search_template」爲String。
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>