我制作了两个文件,一个用于 HTML,其中一个脚本是用 id='search_template' 定义的,另一个 javaScript 文件是我提到的“视图”。
在 View 的渲染功能中,我在 HTML 文件中提取脚本
id='搜索模板'
使用 jQuery 并通过 jQuery 传递它
.html()
将其转换为字符串,然后将其传递给下划线
_.template ( 字符串 )
但是,下划线会引发错误
未捕获的类型错误:无法调用 null 的“替换”方法
我相信 jQuery 无法将 id='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>