Backbone.View“el”混淆

2024-04-20

视图应该如何el被处理? 必须设置它,否则事件不会触发(请参阅here https://stackoverflow.com/questions/4909564/backbone-js-why-isnt-this-event-bound).

但它应该是页面上已有的元素吗? 在我的应用程序中,我将(jQuery 模板)模板渲染到 Fancybox 中。应该做什么el会是这种情况吗?


视图 el 是所有事件绑定发生的地方。您不必使用它,但如果您希望主干触发事件,您需要在 el 上进行渲染工作。视图 el 是一个 DOM 元素,但它不必是预先存在的元素。如果您不从当前页面中提取一个,它将被创建,但如果您想看到它执行任何操作,则必须将其插入页面中。

一个例子: 我有一个创建单独项目的视图

window.ItemView = Backbone.View.extend({
    tagName: "li", //this defaults to div if you don't declare it.
    template: _.template("<p><%= someModelKey %></p>"),
    events: {
         //this event will be attached to the model elements in
         //the el of every view inserted by AppView below
        "click": "someFunctionThatDoesSomething"
    },
    initialize: function () { 
        _.bindAll(this, "render");
        this.render();
    },
    render: function () {
        this.el.innerHTML = this.template(this.model.toJSON());
        return this;
    }
});
window.AppView = Backbone.View.extend({
    el: $("#someElementID"), //Here we actually grab a pre-existing element
    initialize: function () { 
        _.bindAll(this, "render");
        this.render(new myModel());
    },
    render: function (item) { 
        var view = new ItemView({ model: item });
        this.el.append(view.render().el);
    }
});

第一个视图仅创建列表项,第二个视图实际上将它们放置在页面上。我认为这与发生在待办事项示例 http://documentcloud.github.com/backbone/docs/todos.html在backbone.js 网站上。我认为约定是将您的内容呈现到 el 中。因此,el 可以作为放置模板内容的着陆点或容器。然后,Backbone 将其事件绑定到其内部的模型数据。

创建视图时,您可以使用四种方式操作 elel:, tagName:, className:, and id:。如果这些都没有声明,el 默认为没有 id 或 class 的 div。此时它也未与该页面关联。您可以使用 tagName 将标签更改为其他内容(例如tagName: "li",会给你一个 el<li></li>)。同样可以设置el的id和class。 el 仍然不是您页面的一部分。 el 属性允许您对 el 对象进行非常精细的操作。大多数时候我使用el: $("someElementInThePage")它实际上将您在视图中对 el 所做的所有操作绑定到当前页面。否则,如果您想看到在视图中完成的所有艰苦工作都显示在页面上,则需要将其插入/附加到页面视图中的其他位置(可能在渲染中)。我喜欢将 el 视为所有视图都可以操作的容器。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Backbone.View“el”混淆 的相关文章

随机推荐

  • word2vec中单词的向量代表什么?

    word2vec https code google com p word2vec 是 Google 的开源工具 它为每个单词提供一个浮点值向量 它们到底代表什么 还有一篇论文关于段落向量 http cs stanford edu quoc
  • 双指针作为函数参数

    我遇到过很多链表函数和 C 函数 它们打算将双指针而不是单指针传递给函数 例如 下面的函数用于在链表中排序插入 void sortedinsert struct node headref struct node newnode while
  • 如何发送http basic auth post?

    我的任务是使用基本身份验证创建 http 帖子 我正在 asp net MVC 应用程序中使用 C 进行开发 我也得到过这个例子 POST v2 token endpoint HTTP 1 1 Authorization Basic Y2x
  • 驻留内存与活动字节

    假设 我正在使用 Cocos2d 2 0 和 ARC 开发一个 iPhone 项目 并使用 XCode 4 5 2 的 Instruments 简短的问题 为什么驻留内存比活动字节高得多 我这样说是因为 使用仪器 我确实收到了内存不足的警告
  • 如何在节点redis客户端上设置读取超时?

    在 github 上我没有看到读取超时的选项 https github com NodeRedis node redis https github com NodeRedis node redis There s connect timeo
  • 使用“npm install”安装 jquery-ui

    我从这里看到https github com jquery jquery ui https github com jquery jquery uijquery ui 的最新版本是 1 11 4 但是 当我使用 npm install jqu
  • 为什么构造函数被调用两次

    我不明白怎么办constructors work 这里我声明了一个对象obj2 它调用构造函数abc 这完全没问题 但是当我分配时 obj2 100 为什么编译器允许将整数初始化为类对象 如果它允许的话 那么它是如何销毁对象的 然后是如何调
  • `__asm nop` 在 Windows 中相当于 GCC 编译器中的 `asm volatile("nop");`

    在 Windows 中 可以 asm nop被交换为asm volatile nop 在 GCC 编译器中使用 并产生相同的结果 我读过volatile 在 GCC 中 保证调用不会被优化掉 然而 它不能直接移植到 Windows 我很好奇
  • 如何将日期时间四舍五入到最接近的 5 分钟?

    我需要一个Python3函数来四舍五入datetime datetime反对精确到 5 分钟 是的 这已经在之前的 SO 帖子中讨论过here https stackoverflow com questions 32723150 round
  • 在 PHP 中的任意位置插入数组中的新项目

    如何将新项目插入到数组的任意位置 例如数组的中间 您可能会发现这更直观一些 它只需要一个函数调用array splice http www php net manual en function array splice php origin
  • 为什么我无法重写 Java 中的 wait() 方法? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我找到方法了wait 在课堂里Object 它是最终的 这意味着该方法不能被重写 有什么想法为什么是最终的吗 Flavio 这实际上是一个非常好
  • Android 列表视图与部分

    您好 我在尝试了解分段列表视图的工作原理时遇到问题 我让它工作到正常的列表视图中 但现在我想将部分添加到我的列表中 如何在其中添加节标题 这是我有效的代码 public class ChooseTeamActivity extends Li
  • R数据表:移动列表类型的行[重复]

    这个问题在这里已经有答案了 我有一个 data table 其中包含list type x data table k seq 1 5 l list c 4 5 gt x k l 1 1 4 5 2 2 4 5 3 3 4 5 4 4 4 5
  • Rails 3.2.3 无法在 ubuntu 12.0.4 中使用 webrick 在 https 上工作

    一直在尝试在 ubuntu 12 0 4 中使用 webrick 获得一个新的 刚刚创建的 Rails 应用程序来在 ssl 上工作 已经尝试了我所知道的所有可能的方法 尝试使用config force ssl true in 应用程序 r
  • 相对文件路径问题

    我正在开发一个尝试读取配置文件的 portlet 我正在 eclipse 项目中开发它 我目前将配置文件放置在 WEB INF 文件夹 位于 root WEB INF 中 中 其名称为 config properties 如何使用 java
  • node.js - 如何将数组写入文件

    我有一个示例数组如下 var arr 1373628934214 3 1373628934218 3 1373628934220 1 1373628934230 1 1373628934234 0 1373628934237 1 13736
  • 查找 A 中与 B 中没有关联行的行,其中 FK 位于 B 上?

    我一直在做的是 SELECT FROM a LEFT JOIN b ON b a id a id WHERE b id IS NULL 基本上 我试图找到的行a没有关联的b 外键存储在b 这是执行此操作的正确方法 还是有其他类型的连接来执行
  • 使用 getCollection 和 addLevelFilter 列出 Magento 类别,但排除默认根类别

    我使用以下代码来获取集合并使用 addLevelFilter 2 在级别上进行过滤 这会完美地输出第 2 级的所有类别 除了它还会提取列表中的默认根类别之外 我想从视图中排除它 但在查看了所有可用的方法后 我没有看到任何可以帮助我删除 排除
  • 如何在最新版本的 Tensorflow 中使用 MultiVariateNormal 分布

    I need to use the MultiVariateNormal distribution from the tf contrib distributions MultivariateNormal However in the la
  • Backbone.View“el”混淆

    视图应该如何el被处理 必须设置它 否则事件不会触发 请参阅here https stackoverflow com questions 4909564 backbone js why isnt this event bound 但它应该是