Backbone的 listenTo 和 on
使用情景区别
listenTo用于监听自身意外的对象
on用于监听自身
listenTo和on中的回调函数里的this的区别
listener.listenTo(object, 'eventName', function(){
//此处的this指向listener
})
object.on('eventName', function(){
//此处的this指向object
})
object.on('eventName', function(){
//此处的this指向context
}, context)
触发顺序
当存在同名事件时,会按定义顺序执行,on和listenTo定义的事件会处在同一队列中
若监听了all事件,则触发任意事件都将会在执行完相应回调后执行all事件的回调, all事件的监听会传递一个参数,该参数为事件名字
demo
var a = {type: "I'm listening"}, b = {type: "I'm listened"};
_.extend(a, Backbone.Events);
_.extend(b, Backbone.Events);
b.on('onNoContext', function(){
console.log('trigger onNoContext');
console.log(this.type);
});
b.on('onContext', function(){
console.log('trigger onContext');
console.log(this.type);
}, a);
a.listenTo(b, 'listened', function(){
console.log('trigger listened');
console.log(this.type);
});
b.on('all', function(){
console.log('trigger on all');
});
a.listenTo(b,'all', function(){
console.log('trigger listen all');
});
console.log('###b.trigger("all")###');
b.trigger('all');
console.log('###b.trigger("onNoContext")###');
b.trigger('onNoContext');
console.log('###b.trigger("onContext")###');
b.trigger('onContext');
console.log('###b.trigger("listened")###');
b.trigger('listened');
运行结果:
1 ###b.trigger("all")###
2 trigger on all
3 trigger listen all
4 trigger on all
5 trigger listen all
6 ###b.trigger("onNoContext")###
7 trigger onNoContext
8 I'm listened
9 trigger on all
10 trigger listen all
11 ###b.trigger("onContext")###
12 trigger onContext
13 I'm listening
14 trigger on all
15 trigger listen all
16 ###b.trigger("listened")###
17 trigger listened
18 I'm listening
19 trigger on all
20 trigger listen all
Backbone的 listenTo 和 on的更多相关文章
- Backbone事件模块及其用法
事件模块Backbone.Events在Backbone中占有十分重要的位置,其他模块Model,Collection,View所有事件模块都依赖它.通过继承Events的方法来实现事件的管理,可以说 ...
- 【转】Backbone使用总结
转自 http://www.pchou.info/javascript/2014/06/26/backbone-summary-01.html 开始在项目中大规模使用backbone,一路磕磕碰碰, ...
- Backbone学习记录(1)
去年买的<基于MVC的javascript Web富应用开发>,拖到现在还没看完,作者介绍了三个MVC框架,Spine ,backbone和javascriptMVC.1和2在国内的流行度 ...
- listenTo - backbone.js
listenToobject.listenTo(other, event, callback) 让 object 监听 另一个(other)对象上的一个特定事件.不使用other.on(event, ...
- 我对Backbone.js的一些认识
backbone.js已经不是当前最流行的前端框架了,但是对于我而言,依然具有比较好的学习价值.虽然目前来说,react,vue等mvvm框架非常火热,但是感觉自身还不到去使用这种框架的层次.这些技术 ...
- backbone学习总结(二)
今天来看下backbone的路由控制的功能.其实个人感觉backbone,模块就那么几个,熟悉它的框架结构,以及组成,就差不多. 废话不多说,我们来看看还剩下的功能. 关于路由和历史管理 通过 Bac ...
- Backbone 学习笔记
Backbone 是一款基于模型-视图-控制器 MVC 模式的轻量级javascript 框架 ,可以用来帮助开发人员创建单页Web应用. 借助Backbone 我们可以使用REST的方式来最小化客户 ...
- Backbone源码阅读手记
Backbone.js是前端的MVC框架,它通过提供模型Models.集合Collection.视图Veiew赋予了Web应用程序分层结构.从源码中可以知道,Backbone主要分了以下几个模块: ( ...
- TodoMVC中的Backbone+MarionetteJS+RequireJS例子源码分析之三 Views
这个版本的TodoMVC中的视图组织划分比较细,更加易于理解,这也得益于Marionette为我们带来了丰富的视图选择,原生的backbone只有views,而Marionette则有itemview ...
随机推荐
- ESSENTIAL ENGLISH SLANG
airhead: stupid person. ace: excellent, great. Adam and Eve - Rhyming Slang for 'believe'. aggro - s ...
- SqlMapConfig.xml全局配置文件解析
一:SqlMapConfig.xml配置文件的内容和配置顺序如下 properties(属性) settings(全局配置参数) typeAiases(类型别名) typeHandlers(类型处理器 ...
- Qt入门(2)——使用Qt编写的Hello world
对于一个qt初学者来说,一步一步来直到作出一个hello world是最基础的入门. 从菜单:应用程序->编程中找到QtCreator
- SQL-Customers Who Never Order
Suppose that a website contains two tables, the Customers table and the Orders table. Write a SQL qu ...
- POJ-1028(字符串模拟)
Web Navigation Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 31906 Accepted: 14242 ...
- java--字节数组输入、输出流
在java网络编程中,字节数组很重要,它可以传输任何资料(文本,音频,视频,图片等),因此掌握字节数组和其它数据类型的相互转化尤为重要. 示例代码: package com.lky.util; imp ...
- bootstrap完整导航栏
效果图: 代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...
- ionic框架前端生产环境的简单部署
1. 效果对比 1.1 开发环境 css+js+lib文件大小为好多M :) 1.2 部署环境(生产环境) css+js+lib文件大小约为800K 文件大小:好多M–>800K(多少自己试下) ...
- 【iOS基础】iOS 网络请求
一.一个HTTP请求的基本要素1.请求URL:客户端通过哪个路径找到服务器 2.请求参数:客户端发送给服务器的数据* 比如登录时需要发送的用户名和密码 3.返回结果:服务器返回给客户端的数据* 一般是 ...
- Android应用开发-小巫CSDN博客client之嵌入有米广告
Android应用开发-小巫CSDN博客client之嵌入有米广告 上一篇博客给大家介绍怎样集成友盟社会化组件,本篇继续带来干货,教大家怎样嵌入广告到应用中去.小巫自称专业对接30年,熟悉各大渠道SD ...