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. MFC宏

    1,DECLARE_MESSAGE_MAP:在头文件中声明源文件中所含有的消息映射 2,BEGIN_MESSAGE_MAP:标记源文件消息映射的开始 3,END_MESSAGE_MA:标记源文件消息映 ...

  2. javascript控制页面(含iframe进行页面跳转)跳转、刷新的方法汇总

    一.JS方式的页面跳转1.window.location.href方式    <script language="JavaScript" type="text/ja ...

  3. android视频双向实时通讯的横竖屏切换

    大概的样子是酱婶儿的 点击全屏按钮时执行setRequestedOrientation方法,此时希望得到的结果是surfaceview界面全屏且横屏显示,并且在横屏时Activity没有被重新创建,这 ...

  4. charles系列破解激活办法(最高charles4.2.5都可以激活,亲测可用)

    Registered Name: https://zhile.io License Key: 48891cf209c6d32bf4 抓包工具Charles的使用心得 https://www.jians ...

  5. php命令行脚本 mock数据

    <?php $con = mysql_connect("192.168.1.5:3306","root","123"); if (!$ ...

  6. 关于Unity中混合模式、Alpha测试、深度测试、通道遮罩、面剔除的使用----渲染通道通用指令(二)

    混合模式 着色完成后,需要把颜色混合到帧缓冲区里面,涉及到源和目标. 1:在所有计算完成后,决定当前的计算结果输出到帧缓冲区时,如何混合源和目标,通常用来绘制半透明的物体;2: Blend Off 关 ...

  7. tornado上传大文件以及多文件上传

    tornado上传大文件问题解决方法 tornado默认上传限制为低于100M,但是由于需要上传大文件需求,网上很多说是用nginx,但我懒,同时不想在搞一个服务了. 解决方法: server = H ...

  8. c++ 文件增加#ifndef、#define 和 #endif 语句的意义

    文件currency.h (或 currencyOverload.h) 包含了 currency类的声明和实现细节. 在文件头, 应该加上语句 #ifndef Currency_ #define Cu ...

  9. python一天一题(2)

    python查询mysql数据库 import pymysql host = '192.168.74.5' user = 'root' passwd ='root' port = 3310 db = ...

  10. (笔记)Ubuntu下安装arm-linux-gcc-4.4.3.tar.gz (交叉编译环境)

    参考了前人的成果,结合自己实践,arm-linux-gcc-4.4.3.tar.gz的下载地址为:http://ishare.iask.sina.com.cn/f/13836544.html?from ...