backbone--model--学习笔记

一、模型 - Model

1.创建一个空的Note模型

var Note = Backbone.Model.extend({});

2.实例化Note模型

1).实例化一个空的模型

var note1 = new Note()

2).实例化模型并添加属性

var note2 = new Note({

title: ‘backbone学习笔记‘,

created_at: new Date()

});

3.模型的操作方法

1).获取属性值

note2.attributes;

note2.toJSON();  //返回来一个对象

JSON.stringify(note2); //返回json格式数据

2).返回对象集合中是否包含指定的key值,包含返回true,否则返回false

note2.has(‘title‘);

3).获取指定属性的值

note2.get(‘title‘);  // 返回title属性的值

4).删除指定属性的值

note2.unset(‘title‘);

5).设置指定属性的值 有此属性时,更改值,没有时添加此属性和值

note2.set(‘title‘, ‘backbone学习笔记‘);

6).清空对象中所有的属性

note2.clear();

4.设置模型的默认属性

var Note = Backbone.Model.extend({

defaults: {

title: ‘‘,

created_at: new Date()

}

});

5.模型的初始化

initialize: 此方法在实例化时立即调用

var Note = Backbone.Model.extend({

defaults: {

title: ‘‘,

created_at: new Date()

},

initialize: function() {

console.log(‘新创建了一条笔记:‘ + this.get(‘title‘));

}

});

6.属性发生变化时,触发的事件change

var Note = Backbone.Model.extend({

defaults: {

title: ‘‘,

created_at: new Date()

},

initialze: function() {

console.log(‘新创建了一条笔记:‘ + this.get(‘title‘));

this.on(‘change‘, function(model, options) {

console.log(‘属性的值发生了变化‘);

});

this.on(‘change:title‘, function(model, options) {

console.log(‘title 属性发生了变化‘);

});

}

});

7.验证属性的值 validate

attributes: 对象属性

options: 选项的参数

var Note = Backbone.Model.extend({

defaults: {

title: ‘‘,

created_at: new Date()

},

initialize: function() {

console.log(‘新创建一条笔记:‘ + this.get(‘title‘));

this.on(‘change‘, function(model, options) {

console.log(‘属性的值发生了变化‘);

});

this.on(‘change:title‘, function(model, options) {

console.log(‘title 属性发生了变化‘);

});

},

validate: function(attributes, options) {

if (attributes.title.length < 3) {

return ‘笔记的标题字符数要大于3‘;

}

}

});

8.验证失败后的事件 invalid

model:对象

error:错误信息

var Note = Backbone.Model.extend({

defaults: {

title: ‘‘,

created_at: new Date()

},

initialize: function() {

console.log(‘新创建了一条笔记:‘ + this.get(‘title‘));

this.on(‘change‘, function(model, options) {

console.log(‘属性的值发生了变化‘);

});

this.on(‘change:title‘, function(model, options) {

console.log(‘title 属性发生了变化‘);

});

this.on(‘invalid‘, function(model, error) {

console.log(error);

});

},

validate: function(attributes, options) {

if (attributes.title,length < 0) {

return ‘笔记的标题字符要大于3‘;

}

}

});

时间: 2024-08-27 23:51:39

backbone--model--学习笔记的相关文章

【转】Backbone.js学习笔记(二)细说MVC

文章转自: http://segmentfault.com/a/1190000002666658 对于初学backbone.js的同学可以先参考我这篇文章:Backbone.js学习笔记(一) Backbone源码结构 1: (function() { 2: Backbone.Events // 自定义事件 3: Backbone.Model // 模型构造函数和原型扩展 4: Backbone.Collection // 集合构造函数和原型扩展 5: Backbone.Router // 路由

【转】Backbone.js学习笔记(一)

文章转自: http://segmentfault.com/a/1190000002386651 基本概念 前言 昨天开始学Backbone.js,写篇笔记记录一下吧,一直对MVC模式挺好奇的,也对js中MVC的开创鼻祖怀着敬畏之心,唉,不说了,好虚伪,以下是我的学习心得和笔记. 给大家看一下全球js库和框架的使用比例:这是通过搜索引擎抓取script标签统计而来的数据,可信度相当高啊,另外,不要迷恋Angular.js,Avalon.js还是挺不错的. 什么是Backbone.js? Back

Backbone学习笔记一Backbone中的MVC

原文章地址http://bigdots.github.io/2015/12/01/Backbone学习笔记(一)/#more Backbone.js为复杂WEB应用程序提供模型(models).集合(collections).视图(views)的结构.其中models用于绑定键值数据和自定义事件:collections附有可枚举函数的丰富API: views可以声明事件处理函数,并通过RESRful JSON接口连接到应用程序. 下面通过实例来学习backbone的MVC.实例来自http://

Backbone学习笔记

MVC 爱创课堂今日分享-Backbone学习笔记 M表示模型V表示视图C表示控制器MVC最早出现在smalltalk语言中,MVC分别表示模型,视图,控制器,模型通常指的是数据,视图通常是它能看到的页面,控制器通常表示一些交互等等,MVC根据前后端的划分,又有不同的含义对于后端来说M(Model)模型,通常指的是底层的数据,例如对数据库操作数据的封装等V(View)视图,向前端输出的视图等等,包括渲染视图,创建视图等等C(Controller)控制器,指的是对模型以及视图的操作,例如获取请求,

树莓派学习笔记——Model B Model B+ Compute Module Dev Kit的区别和联系

0 前言 最近浏览器树莓派官方发现树莓派推出了两款新Model--一款名为树莓派 model B+,一款名为树莓派 Compute Module Dev Kit.带着欣喜和恐惧查阅了相关资料,并通过淘宝和RS中国了解开发板价格.欣喜的感觉来自于树莓派的功能得到了增强,恐惧来自于树莓派的改变带来新的学习成本.经过几天的资料收集,所以整理成博文和大家分享. 1 横向比较 [共性比较] 表1 三款树莓派横向比较 区别 Model B Model B+ Compute Module Dev Kit 芯片

Django学习笔记(三)—— 模型 model

疯狂的暑假学习之 Django学习笔记(三)-- 模型 model 参考:<The Django Book> 第5章 1.setting.py 配置 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.', # 用什么数据库管理系统 'NAME': '', # 数据库名称,如果用sqlite,要写完整路径 'USER': '', # 如果用sqlite,这个不用写 'PASSWORD': '', # 如果用sqlite,这个不用写

【点击模型学习笔记】Ad centric model discovery for redicting ads&#39; click through rate_ANT2013_Tencent

腾讯soso的人写的一篇文章,介绍soso广告系统的ctr预估技术.2013年的,应该反映了当前soso的ctr预估系统的情况. ANT会议质量一般,elsevier出版社出版.搞笑的是,文章摘要居然把论文模板上的这句话"Click here and insert your abstract text"原封不动的写在了第一句,并且就这样发表了! 主要内容: 描述soso搜索结果页面中广告点击率预测的系统实现. 具体内容: 1. 相关工作 Rechardson用逻辑回归来预测ctr ki

backbone.Model 源码笔记

backbone.Model backbone的model(模型),用来存储数据,交互数据,数据验证,在view里面可以直接监听model来达到model一改变,就通知视图. 这个里面的代码是从backbone里面剥离出来,然后一点一点研究和调试出来的,可以单独运行,依赖underscore,jquery或者是zepto  event.js是剥离出来的Backbone.Events <!DOCTYPE html> <html> <head> <meta chars

Mvc Model 模板的获取【学习笔记】

MVC的Model模板有两种:一种编辑模式(@Html.EditorFor()).一种显示模式(Html.DisplayFor()). 模板的获取与执行(以下转自这里): 当我们调用HtmlHelper或者HtmlHelper<TModel>的模板方法对整个Model或者Model的某个数据成员以某种模式( 显示模式或者编辑模式)进行呈现的时候,通过预先创建的代表Model元数据的ModelMetadata对象都可以找到相 应的模板.如果模板对应着某个自定义的分部View,那么只需要执行该Vi

mvc Model元数据【学习笔记】

页面中Html.Editorfor(model=>model.fieldname)这些方法,都是通过Model的元数据来生成html的,我们如果想控制最终生成的html,可以通过修改元数据来实现. 代表Model元数据的类名是ModelMetadata,获取一个Model类的元数据的方法如下: public static ModelMetadata GetModelMetadata<TModel>(string propertyName) {     ModelMetadataProvi