zoukankan      html  css  js  c++  java
  • backbonejs中的模型篇(一)

    一:模型及属性

    模型是MVC应用的基石,它负责存放应用所需的数据,对数据的验证,执行访问控制,以及实现应用所需的特定业务逻辑。

    backbone通过扩展Backbone.Model对象来定义一个模型。

    如:var Mymodel = Backbone.Model.extend({...});

    我们并不需要在模型内部定义一个数据结构,backbone支持在模型初始化时动态定义。

    如: mymodeltest = new Mymodel({

        date:'2014-08-14',

        name:'joan',

        description:'test'});

    1:模型复制

    newmodel= mymodeltest.clone(); 得到一个模型独立的副本,此时对mymodeltest模型实例的修改不会反映到newmodel上;如果是赋值给另一个对象,则会反映到另一个对象。

    2:设置默认的属性值

    如: var _model = Backbone.Model.extend({

        defaults:{date:'', name:'joan', description:'',gender:'women'}

    })

    var aaa = new  _model({

      description:'testtest'

    });

    aaa.get('date')!=undefine //true

    aaa.get('name') //joan                   aaa.get('description')  //testtest

    3:可用函数来设置默认属性值

    如:var _model = Backbone.Model.extend({

        defaults:{name: 'joan',

              description: '',

              gender: 'women',

              date: function(){var date = new Date(); return date.toISOString();}}

    })

    4:initialize()方法

    在模型对象被创建后,initialize方法立即被调用来初始化模型对象的属性值

    以上defaults中的date属性也可以在initialize方法中设置

    initialize:function(){

      if(!this.has('date')){var date = new Date(); this.set('date',date.isISOString());}

    }

    通过has方法来判断date属性是否在它之前没有被初始化过,避免将其覆盖

    通过set方法来设置默认date属性

    二:操作模型属性的一些专门的方法

    1:get():获取属性的值

    2:set():更新或者创建单个属性的值,可以一次更新多个,使用‘键-值’的格式

      如:aaa.set({name:'saly',gender:'Man'})  如果该属性不存在,则会自动创建出该属性。设置成功,返回true,表示一个可用的模型的引用,否则false.

    3:unset():从模型中删除一个属性。 如:aaa.unset('description')

    4: clear(): 从模型中删除所有的属性。

    5:has():检查模型中是否存在某一属性,存在返回true, 如:aaa.has('name'), //true

  • 相关阅读:
    【重点突破】——Canvas技术绘制音乐播放器界面
    【重点突破】——Canvas技术绘制随机改变的验证码
    【重点突破】——使用Canvas进行绘图图像
    【温故知新】——HTML5重要知识点复习
    【重点突破】——Cookie的使用
    vs2012 MinGW 编译ffmeg 引用外部库libx264,librtmp
    vs2015编译ffmpeg 出现错误rtmp.lib(rtmp.obj) : error LNK2001: 无法解析的外部符号 ___iob_func
    vs2012 MinGW编译ffmpeg 出现libavdevice/avdevice.c(38) : error C2059: 语法错误:“.”
    ffmpeg rtmp 推流错误WriteN, RTMP send error 10053 10038
    ffmpeg 发布hls流
  • 原文地址:https://www.cnblogs.com/Joans/p/3912799.html
Copyright © 2011-2022 走看看