backbone.初步了解

  当我们开发含有大量Javascript的web应用程序时,首先你需要做的事情之一便是停止向DOM对象附加数据。 通过复杂多变的jQuery选择符和回调函数创建Javascript应用程序,包括在HTML UI,Javascript逻辑和数据之间保持同步,都不复杂。 但对富客户端应用来说,良好的架构通常是有很多益处的。

  Backbone将数据呈现为model, 你可以创建模型、对模型进行验证和销毁,甚至将它保存到服务器。 当UI的变化引起模型属性改变时,模型会触发"change"事件; 所有显示模型数据的视图会接收到该事件的通知,继而视图重新渲染。 你无需查找DOM来搜索指定id的元素去手动更新HTML。 — 当模型改变了,视图便会自动变化。

主要组成:

1.model:创建数据,进行数据验证,销毁或者保存到服务器上;

  

  

创建一个模型:  var student= Backbone.Model.extend({
                defaults:{                     //。。。模型默认的属性
                        id:1,
                        pkid:0,
                        name:‘‘,
                       age:0
                    },
                urlRoot : ‘/info‘  //......到后台的URL路劲
    });

2.collection:可以增加元素,删除元素,获取长度,排序,比较等一系列工具方法,说白了就是一个保存 models的集合类

创建几个集合:  var liststudent = Backbone.Collection.extend({
              model:student           //..........model后跟你所需保存模型名
    });

重要方法:

1.fetch方法

    

从服务器拉取集合的默认模型,成功接收数据后会重置(reset)集合。 options 支持 success 和 error 回调函数,回调函数接收 (collection, response) 作为参数。 可以委托 Backbone.sync 在随后处理个性化需求。 处理 fetch 请求的服务器应当返回模型的 JSON 数组。

2.save方法

通过委托 Backbone.sync 保存模型到数据库(或可替代的持久层)。 attributes 散  列表 (在 set) 应当包含想要改变的属性,不涉及的键不会被修改。 如果模型含有 validate 方法,并且验证失败,模型不会保存。 如果模型 isNew, 保存将采用 "create" (HTTP POST) 方法, 如果模型已经在服务器存在,保存将采用 "update" (HTTP PUT) 方法.

3destroy方法

通过委托 HTTP DELETE 请求到 Backbone.sync 销毁服务器上的模型. 接受 success 和 error 回调函数作为选项散列表参数。 将在模型上触发 "destroy" 事件,该事件可以通过任意包含它的集合向上冒泡。

实例:对表格进行增删

HTML代码:

<input type="text"><input type="text">
<button id=‘add‘>添加</button>
<table>
    <thead>
    <tr>
        <th>编号</th>
        <th>姓名</th>
        <th>年龄</th>
        <th>操作</th>
    </tr>
    </thead>
    <tbody id="main">
    <tr>
        <td></td>
        <td></td>
        <td></td>
        <td><a href="#">删除</a> </td>
    </tr>
    </tbody>
</table>

JS代码:

<script type="text/javascript">

var studentm = Backbone.Model.extend({        //创建一个模型

      urlRoot:‘/info‘    //集合外部的模型,通过指定 urlRoot 来设置生成基于模型 id 的 URLs 的默认 url 函数。

});

var list = Backbone.Collection.extend({    //将studentm模型放到集合中

  model:studentm,

      url:‘/info‘     });   // url 属性(或函数)以指定集合对应的服务器位置。集合内的模型使用 url 构造自身的 URLs

var stulist = new list();

function queryall(){   //查询

stulist.fetch({success:function(m,r){     //fetch方法

var str ="";

m.each(function(i,n){

str+="<tr><td>" + i.get("id")+

"</td><td>" +i.get("s_name")+

"</td><td>" +i.get("s_age")+

"</td><td><a href=‘javascript:del("+n+")‘>删除</a></td></tr>";

});

$(‘#main‘).html(str);

}});    }

queryall();

$(‘#add‘).on(‘click‘,function(){

var inpuobj = $(‘input[type=text]‘);

var finp = inpuobj[0].value;

var sinp = inpuobj[1].value;

var temp = new studentm();

temp.save({name:finp,age:sinp},{success:function(){    //save方法

queryall();

}});     });

/**     *   删除     */

function del(i){

stulist.at(i).destroy({ //。。。。。。。。。destroy方法

success:function(){

queryall();

}        });//  第一个发出请求,第二个消除集合中的自己(对象);    }

</script>

时间: 2024-08-06 17:27:51

backbone.初步了解的相关文章

Backbone的一点使用心得

Backbone的其实感觉上上手很难,大概在一年前就想实践下,结果总是没有付诸行动,这次需求中狠狠心决定一定要使用一次看看,感受下. 可是第一步真的比较困难,因为直接看API好像没有感觉就在网上找实例看看,但是我只能说有些人在给实例的时候根本就没有考虑过新手的感受. 我曾经在看完一些教程之后的迷惑: 1. 在view中this.model到底代表的是什么? 2. template如何写? 其实这两个问题很简单,可能就是一句话的事情,也许是我对于Backbone了解很少的缘故,我当时确实不明白.

初探Backbone

Backbone简介 中文API:http://www.csser.com/tools/backbone/backbone.js.html 英文API:http://backbonejs.org/ Backbone是构建javascript应用程序的一个优秀的类库.他简洁.轻量级.功能实在. backbone采用MVC模式,本身提供了模型.控制器和视图从而我们应用程序的骨架便形成. backbone依赖于underscore,他是一个类库,提供了60多个函数处理数组操作.函数绑定,以及javas

网口扫盲一:网卡初步认识(转)

网口扫盲一:网卡初步认识 网络适配器又称网卡或网络接口卡(NIC),英文名Network Interface Card.它是使计算机联网的设备.平常所说的网卡就是将PC机和LAN连接的网络适配器.网卡(NIC) 插在计算机主板插槽中,负责将用户要传递的数据转换为网络上其它设备能够识别的格式,通过网络介质传输.数据在计算机总线中传输是并行方式即数据是肩并肩传输的,而在网络的物理缆线中说数据以串行的比特流方式传输的,网卡承担串行数据和并行数据间的转换.网卡在发送数据前要同接收网卡进行对话以确定最大可

初步了解CPU

了解CPU By JackKing_defier 首先说明一下,本文内容主要是简单说明CPU的大致原理,所需要的前提知识我会提出,但是由于篇幅我不会再详细讲解需要的其他基础知识.默认学过工科基础课. 一.总述 先从计算机的结构说起,在现代计算机中,CPU是核心,常常被比喻为人的大脑.现在的计算机都为“冯·诺依曼机”,“冯诺依曼机”的一个显著的特点就是由运算器.存储器.控制器.输入设备和输出设备组成.CPU是运算器和控制器合起来的统称,因为运算器和控制器在逻辑关系和电路结构上联系十分紧密,尤其在大

zerglurker的C语言教程004——指针初步讲解

在上次的教程里面,我提到了指针. 针对指针,这次我将简单的讲讲,后面我还会讲到--那个时候你应该有了相当的基础. 首先,先讲讲指针类型. 任何类型关键字后面加一个*符号,就会变成指针类型. 比如: char → char* 字符指针 int → int* 整数指针 double→double* 双精度指针 甚至还可以这样: char*→char** 字符指针的指针类型 →char*** 字符指针的指针的指针类型- 指针本质上是一个内存地址值,该内存地址上存放的是相关类型的数值.但是void*指针

Backbone学习日记[2]:后台(php)接收前端数据并保存

一.前端定义一个模型,设置一个url,指向提供保存数据功能的后台文件,给模型设置一个默认值:实例化模型,调用save方法: <script type="text/javascript" src="jquery.min.full.js"></script> <script type="text/javascript" src="Underscore.js"></script> &l

用backbone实现的一个MVC的小demo

一.Apache配置 本实例需要使用php支持.要现在Apache中配置虚拟目录,在Apache下的httpd-vhosts.conf文件中添加如下代码 <VirtualHost *:80> DocumentRoot "D:/htdocs/backbone_demo" ServerName www.backbonedemo.cn </VirtualHost> 在windows的hosts文件中添加配置,hosts文件的位置在c:\windows\system32

nodejs,webpack安装以及初步运用

nodejs安装: 1.下载:https://nodejs.org/en/download/ 2.安装node-v6.11.3-x64.msi文件,直接默认安装(next--): 3.验证是否完成安装:cmd 进入后输入命令 node -v  回车能得到nodejs版本号: 输入node 回车再输入console.log('aaaaa') 回车能正常显示输出. 这表示nodejs安装成功. webpack安装: 1.npm安装:在f盘新建文件夹webpack,在webpack文件夹建文件夹dem

Github 的注册教程和初步使用体验

我叫许晴,是网工143的学生,学号是1413042064,兴趣包括手绘,看书和手游.学习过c++和汇编语言课程,但在编程方面没什么独立实践经验. 我的Githup用户名是 XQ123 .下面是我在github的注册流程及初步使用体验. 我先搜索github,试了好几次才进去官网,但是在手机客户端注册的话比较好进.这是网页注册的界面.使用名不能设成中文,只能使用数字.字母和特殊符号,不能以短横线开头.如果设置的用户名有重复的话也不能设置 如果设置的用户名已经有人使用的话,也是不能设置的. 然后就是