zoukankan      html  css  js  c++  java
  • Backbone 学习笔记五

    validate  model.validate(attributes)

    未定义,需要时重载。

    它在set 和 save 之间执行,并传入待更新的值。

    如果模型和属性通过验证,不返回任何值,否则,返回一个可选择的错误。错误信息或error对象。将阻止set 或save 的执行 ,并触发error事件

    var Chapter = Backbone.Model.extend({

      validate:function(attrs) {

        if(attrs.end < attrs.start) {

          return "can't end before it starts";

        }

      }

    });

    var one = new Chapter({

      title: "chapter One : The Beginning"

    });

    one.bind("error",function(model,error){

      alert(model.get("title") + " " + error );

    });

    one.set({

      start:15,

      end : 10

    });

    error 事件对模型和集合级别提供粗粒度的错误信息很有帮助,但如果想设计更好的处理错误的特定试图,可以传入error回调函数重载事件

    account.set({access:"unlimited"},{

      error:function(model,error) {

        alert(error);

      }

    });

    url  model.url()

    返回模型资源在服务器上位置的相对URL。

    可以重载该方法。形式/[collection.url]/[id]  如果不是集合的一不分,/[urlRoot]/id

    在[collection#url]的URL,确定它是否定义过,或者所有模型共享通用根URL时,是否存在urlRoot属性。

    urlRoot  model.urlRoot

    如果使用的集合外部的模型,通过指定urlRoot来设置生成基于模型id 的URLs的默认url 函数

    var Book= Backbone.Model.extend({urlRoot:'/books'});

    var solaris = new Book({id:"10083-len-solaris"});

    alert(solaris.url());

    parse  model.parse(response)

    会在通过fetch 从服务器返回模型数据,以及save时执行。接受参数为response对象,为可以set 到模型的属性散列表

    clone model.clone()

    返回与模型属性一致的新的实例

    isNew  model.isNew()

    模型是否已经保存到服务器。如果模型尚无id,则是新的   有无id 

    chagen model.change()

    手动触发change事件,如果已经set函数传入选项参数{slient:true},可以手动的调用mode.change 

    hasChanged   mode.hasChanged()

    标识模型从上次change 事件后是否改变过,

    book.bind("change",function(){

      if(book.hasChanged("title")) {

        

      }

    changedAttributes  mode.changedAttributes([attribute])

    仅获取模型属性已改变的散列表,还可以传入外来的attributes散列,返回该散列与模型不同的属性。

    可用于视图的哪个部分已更新,或者确定那些需要与服务器同步

    previouse  mode.previous(attribute)

    在change 事件,该方法可以获得属性的旧值

    var bill = new Backbone.Model({

      name: "fdff";

    })

    bill.bind("change:name",function(model,name){

      alert("名字已从"+bill.previouse("name") + "改为 " + name );

    });

    bill.set({name:"一会"});

    previouseAttributes   model.previouseAttributes()

    返回模型的上一个属性散列的副本。。用于比较模型不同版本的区别,或者回滚模型状态。。

  • 相关阅读:
    java 线程状态和转化
    初学Spring
    unittest --- 单元测试
    Python单例模式的两种实现方式
    python records操作数据库
    数据可视化之——matplotlib基础学习
    python使用list维护成一个队列
    Python将list列表维护成一个栈
    Python使用rsa模块实现非对称加密与解密
    python +OpenCV实现rtmp视频流媒体的播放
  • 原文地址:https://www.cnblogs.com/yushunwu/p/Backbone.html
Copyright © 2011-2022 走看看