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

  • 相关阅读:
    阅读笔记:管理学
    Vs2010中文版MSDN 安装方法
    .NET 产品版权保护方案 (.NET源码加密保护)
    WPF 判断是否为设计(Design)状态
    重写成员时违反了继承安全性规则。重写方法的安全可访问性必须与所重写方法的安全可访问性匹配。
    没有为此解决方案配置选中要生成的项目 .
    何崚谈阿里巴巴前端性能优化最佳实践
    Oracle10GODP连接11G数据库,出现ORA 1017用户名/口令无效; 登录被拒绝 的问题
    HTTP、TCP、UDP、Socket (转)
    编译的时候生成.g.cs还有.g.i.cs,有什么区别?
  • 原文地址:https://www.cnblogs.com/Joans/p/3912799.html
Copyright © 2011-2022 走看看