fir*_*ird 8 jquery backbone.js
我有以下模板:
<div class="row">
<div></div>
....
</div>
Run Code Online (Sandbox Code Playgroud)
以及以下观点:
var TestView = Backbone.View.extend({
tagName: "div",
template: $("#tests_template"),
initialize: function () {
_.bindAll(this, 'clickbtn');
},
events:
{
"click .btn": "clickbtn"
},
render: function () {
....
{
});
Run Code Online (Sandbox Code Playgroud)
问题是,它产生以下输出:
<div><div class="row">...</div></div>
Run Code Online (Sandbox Code Playgroud)
我如何摆脱外部div?我尝试从视图中删除tagName属性,但它仍然放置div?
Bri*_*sio 10
更改模板以摆脱外部div:
<div></div>
....
Run Code Online (Sandbox Code Playgroud)
然后,告诉视图使用类名创建div:
tagName: "div",
className: "row"
Run Code Online (Sandbox Code Playgroud)
或者,如果您想保留当前模板,请告诉View el使用哪个(假设它已存在于您页面上的某个位置):
var testView = new TestView({el: $(".row")});
Run Code Online (Sandbox Code Playgroud)
编辑你问你是否可以在初始化程序中执行此操作?当然,但您需要确保挂钩事件:
initialize: function () {
this.el = $(".row");
this.delegateEvents();
_.bindAll(this, 'clickbtn');
}
Run Code Online (Sandbox Code Playgroud)
不过,老实说,前两个选项是更加去耦合的IMO.