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

   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

 

   

原文地址:https://www.cnblogs.com/greenteaone/p/4322411.html