backbone为复杂Javascript应用程序提供MVC(Model View Controller)框架,框架里最基本的是Model(模型),它用来处理数据,对数据进行验证,完成后台数据与前台数据的交互(从前台提交到后台的数据,从后台获取数据传递到前台,都由Model负责)。

   backbone有基本的Model对象Bacxbone.Model,可以通过extend进行扩展,每个模型都有一个唯一的标识符属性id,区分不同的模型,

下面创建一个扩展的模型

var RoomModel = new Backbone.Model.extend({

 });

设置模型id

var room =new RoomModel();

   room.id = Math.random().toString(36).substr(2)

默认情况下,属性名是id,也可以在创建模型时通过设置idAttribute来改变

var RoomModel = new Backbone.Model.extend({
idAttribute:"_id"
});

注:id属性如果没有初始化,可以使用模型对象的cid属性,cid属性的值在模型对象的实例创建时自动赋值,并且是唯一的

现在我们为上面创建的模型添加属性,并且为属性添加默认属性值

添加默认属性值的方法有2种:

1.利用defaults属性设置

var RoomModel = new Backbone.Model.extend({
defaults:{
name:'',
createdAt:new Date(),
capacity:10
}
});

2.利用initialize(),初始化的时候设置

var RoomModel = new Backbone.Model.extend({
defaults:{
name:'',
createdAt:new Date(),
capacity:10
},
initialize:function(){
//先检查updatedAt是不是存在
if(!this.has('updatedAt'){
var updatedAt= new Date();
}
} });

模型属性的操作:set(),get(),unset(),clear(),has()

模型里的属性不能用‘.’操作符访问

var  room = new RoomModel();

1. set():为Model创建/更新属性,属性不存在就会创建一个

room.set({name:'会议室',user:'daner‘});

2. get()获取属性值,如果属性不存在返回undefined

room.get(’user') ; //返回'daner‘

3. unset()从model中删除一个属性

room.unset(’user'); //删除user属性

4. clear();//删除model中的所有属性

room.clear()

5. has();//判断model中是否有某个属性

room.has('name');//有name属性返回true,否则返回false

   

backbone学习笔记:模型(Model)(1)基础知识的更多相关文章

  1. Python基础教程学习笔记:第一章 基础知识

    Python基础教程 第二版 学习笔记 1.python的每一个语句的后面可以添加分号也可以不添加分号:在一行有多条语句的时候,必须使用分号加以区分 2.查看Python版本号,在Dos窗口中输入“p ...

  2. 大数据学习笔记——Java篇之基础知识

    Java / 计算机基础知识整理 在进行知识梳理同时也是个人的第一篇技术博客之前,首先祝贺一下,经历了一年左右的学习,从完完全全的计算机小白,现在终于可以做一些产出了!可以说也是颇为感慨,个人认为,学 ...

  3. 【学习笔记】:JavaScript基础知识超详细总结!

    目录 一.JavaScript的实现 二.JavaScript语言的特点 三.JS与HTML如何结合 四.JS中的数据类型 四.JS的原始数据类型 2.JS的引用数据类型 五.JS引用数据类型之函数 ...

  4. Ant学习笔记(1) 基础知识

    Ant Apache Ant 是一个基于 Java的构建工具. 下载Ant google.baidu.Windows用户下载zip格式.解压即可. Windows安装Ant Ant本质上是一个Java ...

  5. Linux学习笔记05之网络基础知识

    一.OSI参考模型:适用于所有网络,现有模型,后有协议 1.应用层:应用程序.用户接口 2.表示层:编码转换.压缩.解压.加密等 3.会话层:建立.维护.拆除会话 4.传输层规定了应用程序的的接口 协 ...

  6. sqlserver存储过程学习笔记(一)基础知识篇(全)

    说出来有点丢人,做sqlserver应用系统近一年,竟然没有使用过存储过程,现在就好好的梳理一下对应知识,慢慢让其加入到我的项目中去吧. 存储过程的优点:1.运行效率高,提供了在服务器端快速执行sql ...

  7. 学习笔记:HTML+CSS 基础知识

    1.<q>标签,短文本引用       <q>引用文本</q> <q>标签的真正关键点不是它的默认样式双引号(如果这样我们不如自己在键盘上输入双引号就行 ...

  8. JDBC 学习笔记(一)—— 基础知识 + 分页技术

    本文目录:  1.JDBC简介       2.使用JDBC的步骤——第一个JDBC程序       3.DriverManager ——加载数据库驱动       4.数据库URL ——标识数据库的 ...

  9. Hbase学习笔记(安装和基础知识及操作)

    1.Hbase简介 1.面向列的分布式数据库 2. 以HDFS作为文件系统 3. 利用MapReduce处理Hbase中海量数据 4. ZookKeeper作为协调工具 5. sqoop提供Hbase ...

  10. 【C#学习笔记】一、基础知识

    1.1数据类型(P43) 类型 别名 允许的值 sbyte System.SByte -128~127 byte System.Byte 0~255 short System.Int16 -32768 ...

随机推荐

  1. PCL关键点(1)

    关键点也称为兴趣点,它是2D图像或是3D点云或者曲面模型上,可以通过定义检测标准来获取的具有稳定性,区别性的点集,从技术上来说,关键点的数量相比于原始点云或图像的数据量减小很多,与局部特征描述子结合在 ...

  2. Mac生成ssh key

    ssh-keygen

  3. jquery+easyui开发、培训文档

    目  录 1.... Accordion(可折叠标签)......................................................................... ...

  4. IntelliJ IDEA 13.1.3 SVN无法正常使用问题

    http://my.oschina.net/luckyi/blog/291007 最新升级IDEA12到13版本,升级后发现IDEA中SVN无法正常使用,但文件夹下能够正常使用. 并且报错:svn: ...

  5. mac下配置android环境变量

    下面我将一下mac环境下的配置步骤: 1.在本地目录(home directory)中创建文件.bash_profile2.在文件中写入以下内容:export PATH=${PATH}:/Users/ ...

  6. python3 实现mysql数据库连接池

    首先声明一下,这篇博客进行了通过自己的代码方式,加上这篇博客,最后总结出这段代码.参考博客连接:http://blog.csdn.net/zbc1090549839/article/details/5 ...

  7. 3种启动tornado的方式

    r"""A non-blocking, single-threaded HTTP server. 翻译: 一个非阻塞的单线程HTTP服务器 A server is def ...

  8. VIM中 文件的打开与保存

    用 :edit 命令打开一个文件 :edit + {filename}           就可以打开一个文件到缓冲区中, 并且可以加文件路经的: 在路经中, %表示当前文件的完整路经, 用:h 可以 ...

  9. SpringMVC系列(十四)Spring MVC的运行流程

    Spring MVC的运行流程图: 1.首先看能不能发送请求到Spring MVC的DispatcherServlet的url-pattern2.如果能发送请求,就看在Spring MVC中是否存在对 ...

  10. Spring JDBC PreparedStatementSetter接口示例

    org.springframework.jdbc.core.PreparedStatementSetter接口充当JdbcTemplate类使用的一般回调接口.该接口在JdbcTemplate类提供的 ...