jquery - 主干js : How to remove extra tag in view?

标签 jquery backbone.js

我有以下模板:

<div class="row">
  <div></div>
  ....
</div>

以及以下 View :

    var TestView = Backbone.View.extend({
    tagName: "div",
    template: $("#tests_template"),
    initialize: function () {
        _.bindAll(this, 'clickbtn');
    },
    events:
    {
        "click .btn": "clickbtn"
    },
    render: function () {
            ....
            {
      });

问题是,它产生以下输出:

<div><div class="row">...</div></div>

如何去掉外部的div?我尝试从 View 中删除 tagName 属性,但它仍然放置一个 div?

最佳答案

更改模板以去掉外部 div:

<div></div>
  ....

然后,告诉 View 创建带有类名的 div:

tagName: "div",
className: "row"

或者如果您想保留当前模板,则告诉 View 要使用哪个el(假设它已经存在于您页面上的某个位置):

var testView = new TestView({el: $(".row")});

编辑您询问是否可以在初始化程序中执行此操作?当然可以,但您需要确保 Hook 事件:

initialize: function () {
    this.el = $(".row");
    this.delegateEvents();
    _.bindAll(this, 'clickbtn');
}

老实说,在我看来,前两个选项更加解耦。

关于jquery - 主干js : How to remove extra tag in view?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7663895/

相关文章:

jquery ui 可排序禁用一个 li 项目

javascript - 从多个 View 中使用backbone.js中的常见默认值

backbone.js - 主干,不是 "this.el"换行

javascript - Backbone + RequireJS : Making Collection Persisting?

javascript - 如何在 Backbone 模型中正确实现解析以包含集合?

javascript - JQuery 点击功能第一次无法工作 - 需要点击 2 次才能正常工作

javascript - 在 div 内的页面加载时显示微调图像,并在页面完全加载到 div 内时隐藏微调图像

javascript - 在 quickflip 期间暂时禁用链接

javascript - 为什么这个 JSON 显示为未定义?

json - 主干 JS 预取 JSON 与父子集合