我的观点,TuneBook,有几个儿童视图类型为ClosedTune.我也为每个乐曲OpenTune单独的完整页面浏览.相同的事件绑定在ClosedTune和OpenTune中,所以我设计了我的应用程序,以便它们都从一个共享的“抽象”视图Tune继承.

为了使我的应用程序更可扩展,我希望将每个ClosedTune的事件委托给TuneBook,但为了可维护性,我希望TuneBook使用相同的处理程序(存储在Tune中的那些)(尽管他们显然需要包裹在一些功能).

我的问题是,在TuneBook中,找到正确的ClosedTune来调用处理程序.什么是建立这个的好方法,还是将事件委托给父视图的其他好的解决方案?

注意 – 不是Backbone View: Inherit and extend events from parent的重复(这是关于从父类继承的子进程,而我在询问是DOM中的父节点的子节点)

解决方法

在您的父视图(也从Backbone.Events扩展)中,我将绑定onEvent到DOM事件.在触发时,它会触发一个骨干事件,包括您的孩子察觉的一些“id”属性(可能是一些行ID?).
var TuneBook = Backbone.View.extend(_.extend({},Backbone.Events,{
    events: {
        "click .tune .button": "clickHandler"
    },clickHandler: function (ev) {
        this.trigger('buttonClick:' + ev.some_id_attr,ev);
    },}));

然后,子视图将自然地订阅与之关联的父视图事件.下面我在初始化过程中传递父视图以及您之前在选项中使用的特殊id属性.

var ClosedTune = Backbone.View.extend({

    initialize: function (options) {
        options.parent.on('buttonClick:' + options.id,this.handler,this);
    },handler: function (ev) {
        ...
    },});

您也可以在Tune或OpenTune上设置类似的用户.

JavaScript – 将事件委派给Backbone中的父视图的更多相关文章

  1. 通过底层源码理解YOLOv5的Backbone

    yolov5的特征提取网络兼顾速度与精度,将PAN与PFN深度融合,对不同尺度鲁棒性强,可以即插即用,后接不同的检测器,下面这篇文章主要给大家介绍了关于如何通过底层源码理解YOLOv5的Backbone的相关资料,需要的朋友可以参考下

  2. php – always_populate_raw_post_data – 无法从Backbone创建访问请求有效负载

    编辑即使空回调,也会发生错误…

  3. 在Backbone渲染方法中调用jQuery插件

    我在Backbone中有一个渲染方法,基本上就是这样:这是从路由器动作中调用的:现在,我想在这个视图中的标签元素上应用一个插件.我的第一个想法是在render中调用插件:但是这不行.如果我在路由器动作中调用插件,它会工作:我宁愿不这样做,因为插件是视图的一部分,而不是路由器,所以在操作中调用它是没有意义的.有没有更好的方法来做到这一点?解决方法拜特这样做:

  4. jquery – 为什么Backbone事件替换html不起作用?

    如果我在window.myView变量中存储视图,渲染它,然后调用javascript控制台:然后调用:绑定事件将停止工作.我确信这应该是这样,但是:为什么这样做呢?>如何重新呈现子视图w/o丢失事件绑定?为什么调用myView.render()不会丢失事件绑定?

  5. 前端框架选型续 && 分享下使用 Backbone、Vue、Angular、React 的经验

    上周,知乎上有几篇关于Angular和Vue对比的文章。前端的摩尔时代同样吧,在上周结束了《ExpertAngular》的审校,这是第三本为Packt出版社审校的Angular的书。对于我们而言,采用Backbone+jQuery+Spring有几个明显的问题:jQuery带来的散弹性架构问题。在新的项目里,采用的是Angular。代码复用Ionic1.x是基于Angular1.x,由于在Web端也采用了Angular。在Angular1.x到Angular2.x这段期间里,有大量的技术人员因为奥斯本效应

  6. javascript – 未捕获TypeError:undefined不是rails3 / backbone / js的功能

    .并有一个链接到/#,没有别的.查看js控制台,我收到两个脚本的错误:application.js和backbone.js这和这个:对于js来说,这并不完全正确,在短期内没有任何帮助.任何人都可以告诉我这些错误究竟是什么意思,以及如何跟进?

  7. jquery – 是否可以阻止Backbone“读取”请求

    我有一个拥有许多视图的主干应用程序.在视图之间切换会触发Ajax请求以获取不同的集合.如果启动一个新的请求,我想停止当前的“读取”ajax请求.可能吗?解决方法好的,这就是我做的我正在保存变量中的获取请求在我的路由器中,我有一个功能,负责关闭视图和渲染视图.它还负责触发每个视图更改所需的任何触发器,但这与此问题无关.在执行任何操作之前,此路由器功能执行以下操作我希望这有帮助

  8. javascript – 如何在服务器端构建Node,Express,Connect-Auth和Backbone应用程序?

    我是一个客户端的人,刚刚进入服务器端的JavaScript世界.我有这个想法,我想我想要构建我的第一个Nodejs应用程序.我想要一个服务器端,几乎只提供一个空的shell和大量的JSON.我想将其余的逻辑放在装有Backbone.js的前端.所以我快速的打了一个小应用程序,我有几个问题.>会话变量是否安全?我应该做的不同.模块我可能应该看看?

  9. backbone.js – 使用垫片的Requirejs

    使用requirejs2的垫片,有一种方法来告诉要求一个模块已经加载?

  10. javascript – 如何在嵌套的Backbone集合上“冒泡”事件?

    ),但是当我更改子标签的属性时,它会触发Subtab模型和Subtabs上的更改事件集合,但它并没有起泡到Tab模型.至少,我想这应该是因为一个模型中的一个集合被改变了,所以模型被改变了.任何有关如何通过Backbone实现此行为的建议?

随机推荐

  1. js中‘!.’是什么意思

  2. Vue如何指定不编译的文件夹和favicon.ico

    这篇文章主要介绍了Vue如何指定不编译的文件夹和favicon.ico,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  3. 基于JavaScript编写一个图片转PDF转换器

    本文为大家介绍了一个简单的 JavaScript 项目,可以将图片转换为 PDF 文件。你可以从本地选择任何一张图片,只需点击一下即可将其转换为 PDF 文件,感兴趣的可以动手尝试一下

  4. jquery点赞功能实现代码 点个赞吧!

    点赞功能很多地方都会出现,如何实现爱心点赞功能,这篇文章主要为大家详细介绍了jquery点赞功能实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  5. AngularJs上传前预览图片的实例代码

    使用AngularJs进行开发,在项目中,经常会遇到上传图片后,需在一旁预览图片内容,怎么实现这样的功能呢?今天小编给大家分享AugularJs上传前预览图片的实现代码,需要的朋友参考下吧

  6. JavaScript面向对象编程入门教程

    这篇文章主要介绍了JavaScript面向对象编程的相关概念,例如类、对象、属性、方法等面向对象的术语,并以实例讲解各种术语的使用,非常好的一篇面向对象入门教程,其它语言也可以参考哦

  7. jQuery中的通配符选择器使用总结

    通配符在控制input标签时相当好用,这里简单进行了jQuery中的通配符选择器使用总结,需要的朋友可以参考下

  8. javascript 动态调整图片尺寸实现代码

    在自己的网站上更新文章时一个比较常见的问题是:文章插图太宽,使整个网页都变形了。如果对每个插图都先进行缩放再插入的话,太麻烦了。

  9. jquery ajaxfileupload异步上传插件

    这篇文章主要为大家详细介绍了jquery ajaxfileupload异步上传插件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  10. React学习之受控组件与数据共享实例分析

    这篇文章主要介绍了React学习之受控组件与数据共享,结合实例形式分析了React受控组件与组件间数据共享相关原理与使用技巧,需要的朋友可以参考下

返回
顶部