我正在尝试在我的网页上呈现搜索框。我试图将它保持在单独的视野中。没有这个boxview的页面工作正常但是一旦我初始化我的BoxView我得到与下划线相关的错误。
Uncaught TypeError: Object [object Object] has no method 'replace' underscore-min.js:29
这是我的观点
/* Views */
var BoxView = Backbone.View.extend({
el: '.head',
initialize: function() {
this.render();
},
render : function(){
var that = this;
var template = _.template($('#search-box').html());
that.$el.html(template);
}
});
var boxview = new BoxView();
模板
<script type="text/template" id="search-box">
<form class="navbar-search pull-right" id="search">
<input class="search-query" name="searchText" type="text" id="searchText" placeholder="Search books"/>
<button type="submit" class="btn">Submit</button>
</form>
</script>
编辑: 删除了拼写错误
答案 0 :(得分:0)
在我看来,这只是一个错字:
var template = _.template($('#search-box')).html();
应该是:
var template = _.template($('#search-box').html());
修改强>
我通常认为这是在写这个问题时犯的错误,但是你的错误表明问题来自一个下划线调用(你只有一个),并且它试图在一个对象上使用replace
。 _.template
肯定会使用replace
并为您提供一个对象($('#search-box')
)。所以这很有道理。