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. Windows下超强日志工具BareTail

    最近写了一些测试工具,经常希望能动态的查看日志文件,试了好些文本编辑文件如Emeditor.Vim等,一直没找到合适. 我希望支持的功能有: 支持大文件读取,速度要快 自动加载新的内容,直接定位到最后 ...

  2. PHP开发安全问题总结

    php给了开发者极大的灵活性,但是这也为安全问题带来了潜在的隐患,近期需要总结一下以往的问题,在这里借翻译一篇文章同时加上自己开发的一些感触总结一下. 简介 当开发一个互联网服务的时候,必须时刻牢记安 ...

  3. Sword pcre库函数学习三

    14.pcre_get_substring_list 原型: #include <pcre.h> int pcre_get_substring_list(const char *subje ...

  4. Sword protobuf学习四

    #include <iostream> #include <string> #include <sys/types.h> /* See NOTES */ #incl ...

  5. 【Python】【Flask】前端调用后端方法返回页面

    后端代码: @app.route("/test",methods=['POST','GET']) def test(): return "我是测试的" 前端代码 ...

  6. selenium操作浏览器-窗口切换

    package seleniumLearn1; import java.util.Set; import java.util.concurrent.TimeUnit; import org.openq ...

  7. QACT 在线调试 Android O

    使用QACT调试Android O的音频时,不能在线调试,但是使用Android N却可以在线调试. 解决方法 1. adb root 2. adb remount 3. adb shell 4. c ...

  8. e791. 为JSpinner定制编辑器

    This example replaces the default editor (a JFormattedTextField) in a spinner component with a custo ...

  9. Asp.net WebApi下载文件

    1,图片 var result = new HttpResponseMessage(HttpStatusCode.OK) { Content = new ByteArrayContent(stream ...

  10. C#中按模板操作Word —— 如何向Word中插入图片

    一.Word对象模型的重叠性分析 本文主要介绍通过书签Bookmark向Word文档中插入图片的方法.在此之前我们先简单讨论下Word对象模型的重叠性.如果你对Word对象模型还不熟悉,请参考本专栏第 ...