Backbone学习记录(4)

change事件:
"change" (model, options) — 当attributes变化时
"change:[attribute]" (model, value, options) — 当attributes的一个特定属性变化时
listenTo事件:
view.listenTo(model, ‘change‘, view.render); 第一个参数是模块,第二个参数是事件类型,第三个参数是事件回调。

change与listenTo的区别是后者改写了this的指向。

事件绑定

var User=Backbone.Model.extend({
  defaults:{
    name:‘susan‘,
    age:18},
  initialize:function(){
    this.on(‘change‘,function(){
      console.log(1);
    })
  }
});
var user=new User();
user.set(‘name‘,‘jack‘);
//1
user.set(‘name‘,‘lily‘);
//1
var User=Backbone.Model.extend({
  defaults:{
    name:‘susan‘,
    age:18},
  initialize:function(){
    this.on(‘change:name‘,function(model){
      console.log(model.cid);
    })
  }
});
var user=new User();
user.set(‘name‘,‘lucy‘);
//c1
var User=Backbone.Model.extend({
  defaults:{
    name:‘susan‘,
    age:18},
  initialize:function(){
    this.on(‘change:name‘,this.show);
  },
  show:function(){
      console.log(‘show‘);
  }
});
var user=new User();
user.set(‘name‘,‘lucy‘);
//show

事件与视图

var User=Backbone.Model.extend({
  defaults:{
    name:‘susan‘,
    age:18}
});
var UserView=Backbone.View.extend({
    tagName:‘span‘,
  initialize:function(){
    this.listenTo(this.model,‘change:name‘,this.show);
  },
  show:function(){
      this.$el.text(‘show‘).appendTo(‘body‘);
  }
});
var user=new User();
var userview=new UserView({model:user,});
user.set(‘name‘,‘lucy‘);

运行结果是body添加了一个span标签:<span>show</span>

时间: 2024-10-18 20:57:07

Backbone学习记录(4)的相关文章

Backbone学习记录(6)

路由 backbone将路由规则和一个方法名绑定到一起,来控制单页的hash,以及单页的前进后退. var UserRouter = Backbone.Router.extend({ routes: { "": "main", "help": "help", // #help "search/:query": "search", // #search/page "search/

Backbone学习记录(7)

事件委托 <form> <input type="text" class="txt"> <input type="button" class="btn" value="确认"> </form> <span class="input-data"></span> var FormView=Backbone.View.ex

Backbone学习记录(5)

数据与服务器 var User=Backbone.Model.extend({ defaults:{ name:'susan', age:18 }, url:'/user'//数据提交的路径 }); var user=new User({name:'lily'}); user.save();//将数据保存到服务器 从这里可以看到,user.save()执行是将数据提交到了user.url. to be continue...

Backbone学习记录(1)

去年买的<基于MVC的javascript Web富应用开发>,拖到现在还没看完,作者介绍了三个MVC框架,Spine ,backbone和javascriptMVC.1和2在国内的流行度,不高,我就只打算学backbone了. backbone依赖于underscore.js,所以在引入的时候需要先引underscore -_-#=>  Uncaught TypeError: Cannot call method 'each' of undefined Backbone对象 conso

Backbone学习记录(3)

创建视图 同前面创建模型和集合的方式一样,Backbone.View.extend()即可创建视图 var UserView=Backbone.View.extend(); var view1=new UserView(); 生成的实例是这样一个对象,el应该是js原生的对象,$el应该是jQuery对象,很方便,不需要我再去$(el).验证一下: view1.el.innerText="111"; //"111" view1.$el //[<div>?

Backbone学习记录(2)

创建一个集合 var User=Backbone.Model.extend({}); var List=Backbone.Collection.extend({model:User}); 为集合添加模型1.new 时添加 var User=Backbone.Model.extend({}); var List=Backbone.Collection.extend({model:User}); var user1=new List({'name':'susan'}); var user2=new

Backbone 学习笔记

Backbone 是一款基于模型-视图-控制器 MVC 模式的轻量级javascript 框架 ,可以用来帮助开发人员创建单页Web应用. 借助Backbone 我们可以使用REST的方式来最小化客户端和服务器间的数据传输,从而实现了更快加速的Web页面更新. 能心静下来学习了,以前以为Backbone 是一座高山用起来很难,结果只是学了2天就有一些新的,实在让人开心. 我整理了一下整个BackBone的学习记录在我的GIT里面,大部分事件都有例子并且有详细的注解和解释,结合require.js

Python学习记录-2016-12-17

今日学习记录 模块: import os#导入os模块 import sys#导入sys模块 os.system("df -h")#执行df -h命令 cmd_res = os.popen("df -h").read()#将命令的返回结果赋值给cmd_res,如果不加入.read()会显示命令的返回加过在内存的位置 print(sys.path)#显示系统变量路径,一般个人模块位于site-packages下,系统模块位于lib下 print(sys.argu[2]

Objc基础学习记录5

NSMutableString类继承的NSString类. NSMutableString是动态的字符串. 1.appendingString 方式: 向字符串尾部添加一个字符串. 2.appendingFormat:可以添加多个类型的字符串. int,chat float,double等 3.stringWithString 创建字符串, 4.rangeOfString 返回str1在另一个字符串中的位置. 5.NSMakeRange(0,3) 字符串0位到3位. 6.deleteCharac