且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

backbone学习笔记:模型(Model)(1)基础知识

更新时间:2022-08-20 18:55:46

 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属性设置     

backbone学习笔记:模型(Model)(1)基础知识
var RoomModel = new Backbone.Model.extend({
defaults:{ name:
'', createdAt:new Date(), capacity:10 } });
backbone学习笔记:模型(Model)(1)基础知识

 

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

backbone学习笔记:模型(Model)(1)基础知识
var RoomModel = new Backbone.Model.extend({
  defaults:{
    name:'',
    createdAt:new Date(),
    capacity:10
  },
  initialize:function(){
//先检查updatedAt是不是存在
if(!this.has('updatedAt'){ var updatedAt= new Date(); } } });
backbone学习笔记:模型(Model)(1)基础知识

 

    模型属性的操作: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

 

   

作者:绿茶叶 
出处:http://www.cnblogs.com/greenteaone/ 
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

转载:http://www.cnblogs.com/greenteaone/p/4322411.html