zoukankan      html  css  js  c++  java
  • Backbone.js框架学习(一)

    一、简介

        当开发涉及到大量JavaScript的web应用的时候,你的第一件事就是学会把数据与界面分开。使用JavaScript创建应用,最终很容易导致应用中存在很多杂乱无章的jQuery选择器以及回调函数,这些函数都是用来维护数据在Html UI,Javascript逻辑以及服务器数据库之间的同步。对于一个富客户端的应用来说,一个更加结构化的方法会更加有益。

        Backbone把数据用模型表示(models),模型可以被创建,验证,销毁以及保存到服务器。无论何时一个UI行为导致模型的一个属性被更改,模型将触发一个change事件,所以显示该模型状态的视图(view)将会收到这个change事件并响应,使用新的信息重新渲染他们本身。在一个完全使用Backbone的应用中,你不需要编写辅助代码深入文档DOM中查找某个特定ID对应的元素,然后手动更新他们,当一个模型变化时,视图会简单地更新他们本身。

    二、Backbone.Events

    Events是一个模块,可以混合在任何对象上,使得对象能够绑定和触发自定义命名的事件。事件在绑定前不需要事先声明,并且可以使用参数传递。比如:

    var object = {};

    _.extend(object,Backbone.Events);

    object.on("alert",function(msg){alert("Triggered "+msg);});

    object.trigger("alert","an event");

    1、on/bind  为对象绑定事件

    语法1:object.on(events,callback,[context])

    在对象上定义一个或者多个事件,并绑定事件的回调函数。多个事件使用空格分隔。并且单个事件命名可以使用冒号来标示命名空间,比如:book.on("change:title change:author",...)

    语法2:object.on({event1:callback1,event2:callback2,...})

    使用一个对象作为参数,如:book.on({

    "change:title":titleView.update,

    "change:author":authorPane.update

    });

    特别地,如果绑定在对象上绑定一个"all"事件,那当其他任何事件触发时,该事件也被触发。

    2、off/unbind  解除对象上的事件绑定

    语法:object.off([event],[callback],[context])

    如果context没指定,则移除所有context下的指定事件的指定回调。

    如果callback没有指定,则移除指定事件上的所有回调函数。

    如果event没有指定,则移动对象上的所有事件。

    3、trigger   触发对象上的一个事件

    语法:object.trigger(event,[*args])

    4、once  绑定一个只能被触发一次的事件

    语法:object.once(event,callback,[context])

    5、listenTo  监听另一个对象上的某个事件

    语法:object.listenTo(other,event,callback),例子:view.listenTo(model,"change",view.render);

    6、stopListening  停止监听

    语法:object.stopListening([other],[event],[callback])

    7、listenToOnce  监听一次

    语法:object.listenToOnce(other,event,callback)

    三、Backbone.Models

    模型是JavaScript应用的核心,他包含了交互数据及大部分的逻辑:转换,验证,计算和访问控制等。你一般使用特定领域的方法来扩展Backbone.Model,Model提供了基本的方法集合来管理model的变化。

    1、extend    Backbone.Model.extend(properties,[classProperties])

    创建自己的Model类,提供类的实例属性和类属性。

    2、constructor/initialize   new Model([attributes],[options])

    当创建一个model对象的时候,传入attributes的初始化值,如果Model定义了initialize函数,在新建一个model后,initialize方法被调用。

    3、get

    4、set

    5、escape

    6、has

    7、unset

    8、clear

    9、id

    10、idAttribute

    11、cid

    12、attributes

    13、changed

    14、defaults

    15、toJSON

    16、sync

    17、fetch

    18、save

    19、destroy

    20、Underscore Methods(6)

    21、validate

    22、validationError

    23、isValid

    24、url

    25、urlRoot

    26、parse

    27、clone

    28、isNew

    29、hasChanged

    30、changeAttributes

    31、previous

    32、previousAttributes

  • 相关阅读:
    典型用户和用户场景
    每日站立会议个人博客(冲刺周)-Tuesday
    WPS中VB编辑器的安装
    WARN hdfs.DataStreamer: Caught exception
    java.net.ConnectException: Your endpoint configuration is wrong; For more details see: http://wiki.apache.org/hadoop/UnsetHostnameOrPort
    “初始化 Java 工具”期间发生了内部错误, java.lang.NullPointerException
    在Github上搭建个人主页
    关于新版的MySQL安装教程
    stopping hbasecat:/tmp/hbase-root-master.pid:No such file or directory
    途牛订单的服务化演进
  • 原文地址:https://www.cnblogs.com/winson/p/3429567.html
Copyright © 2011-2022 走看看