Backbone.js Wine Cellar中CRUD的示例分析

技术Backbone.js Wine Cellar中CRUD的示例分析小编给大家分享一下Backbone.js Wine Cellar中CRUD的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!您

边肖将与你分享主干酒窖中原油的样本分析。希望大家看完这篇文章后有所收获。我们一起讨论一下吧!

您将学习创建、更新和删除(CRUD)葡萄酒。

HTTP 方法

URL

操作

得到

/API/葡萄酒

搜索所有葡萄酒

得到

/api/wines/10

搜索id=10的葡萄酒

邮政

/API/葡萄酒

添加新酒

/api/wines/10

用id==10更新葡萄酒

删除

/api/wines/10

删除id==10的葡萄酒

这些服务的PHP版本(使用Slim框架)将随下载的内容一起提供。本文还将提供类似的Java版本的API(使用JAX-RS)。

搭配使用 Backbone.js 和非 RESTful 服务

如果RESTful服务不能提供您的持久层,您可以替换主干网。同步在本文档中:

“Backbone.sync是Backbone每次试图读取模型或将其保存到服务器时都会调用的一个函数。默认情况下,它使用(jQuery/Zepto)。ajax发出RESTful JSON请求。您可以替换它来利用不同的持久性策略,例如网络套接字、XML传输或本地存储。”

在本教程中,我不会讨论非RESTful服务的使用。有关更多信息,请参见文档。

添加创建、更新和删除功能

您可以运行将在本教程中编码的应用程序。此在线版本的创建、更新和删除功能已被禁用。

此在线版本的创建、更新和删除功能已被禁用。

Backbone.js  Wine  Cellar中CRUD的示例分析

图2。主干. js代码

代码重点

Wine(2号线至14号线)

第二部分为葡萄酒模型添加了两个属性,如下所示:

(1)urlRoot(3号线):RESTful服务终端将检索或保存模型数据。请注意,只有在检索/保存独立于集合的模型时,此属性才是必需的。如果模型是集合的一部分,那么集合中定义的URL属性就足以让Backbone.js知道如何使用RESTful API来检索、更新或删除数据。

(2)Defaults(第4行):创建模型新实例时使用的默认值。此属性是可选的。然而,这个应用程序需要使用这个属性来提示葡萄酒细节信息模板呈现一个“空的”葡萄酒模型对象(这将在添加新葡萄酒时发生)。

WineListView(22号线至40号线)

当用户添加新酒时,您希望它自动出现在列表中。为此,将视图绑定到WineListView模型(葡萄酒集合)的add事件。当事件被触发时,应用程序创建一个新的WineListItemView实例,并将其添加到列表中。

WineListItemView(42号线至62号线)

(1)当用户更改葡萄酒时,您希望相应的WineListItemView自动重新出现以反映这一更改。为此,请将视图绑定到其模型的变更事件,然后在事件被触发时执行渲染功能。同样,当用户删除葡萄酒时,您希望自动删除列表项。

(2)为此,请将视图绑定到其模型的销毁事件,然后在事件被触发时执行我们自定义的Close函数。重要注意事项:为了避免内存泄漏和事件的反复触发,

重要的是先解除事件侦听器绑定,然后再从 DOM 中删除列表项。

(3)请注意,无论发生哪种情况,您都不用承担重新呈现整个列表的费用。您只能重新呈现或删除受更改影响的列表项。

WineView(第 64 行至第 123 行)

本着封装精神,Save 和 Delete 按钮的事件处理程序均在 WineView 内部进行定义,这与将它们作为自由悬挂式代码块在“类”定义外部定义截然相反。使用 Backbone.js 事件语法,采用 jQuery 幕后委托机制。

您始终可以根据用户在表单中的输入内容采用以下不同方法来更新模型:

(1)“实时”方法:使用更改处理程序在表单更改时更新模型。这种方法从本质上而言是双向数据绑定方法。模型和 UI 控件始终同步。您可以利用这种方法选择将更改实时发送至服务器(隐式保存),还是等到用户单击 Save 按钮时再发送更改(显示保存)。***个选项在存在交叉字段验证规则时不正式也不可行。而第二个选项可能需要您撤销模型更改,如果用户在未单击 Save 的情况下导航至其他项目的话。

(2)“延迟”方法:等到用户单击 Save 时再根据 UI 控件的新值更新模型,然后将这些更改发送至服务器。

本讨论主题并非 Backbone.js 特有,因此本文并未就此进行探讨。为简单起见,我在此处使用延迟方法。但是,我依然导入更改事件,并利用其记录控制台更改。我发现此方法在调试应用程序(特别是要确保我已经清除绑定,请参见 Close 函数)时非常有效。如果您发现更改事件触发多次,则可能没有相应地清除绑定。

HeaderView(第 125 行至第 148 行)

Backbone.js 视图通常用于呈现域模型(比如 WineListView、WineListItemView 及 Wine View)。但它们也可以用来创建复合 UI 组件。例如,在此应用程序中,我们定义的标头视图(一种工具栏)可由多个不同组件构成,并且可以封装其自身逻辑。

看完了这篇文章,相信你对“Backbone.js Wine Cellar中CRUD的示例分析”有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/114460.html

(0)

相关推荐

  • 如何进行IMX6ULL开发板Linux_WIFI驱动实验

    技术如何进行IMX6ULL开发板Linux_WIFI驱动实验这期内容当中小编将会给大家带来有关如何进行IMX6ULL开发板Linux_WIFI驱动实验,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可

    攻略 2021年10月22日
  • mysql如何使用foreign key

    技术mysql如何使用foreign key这篇文章将为大家详细讲解有关mysql如何使用foreign key,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

    攻略 2021年10月27日
  • Django如何编写自定义manage.py命令

    技术Django如何编写自定义manage.py命令小编给大家分享一下Django如何编写自定义manage.py命令,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!python manage.py <c

    攻略 2021年11月20日
  • SQL附加数据库失败问题的解决方法

    技术SQL附加数据库失败问题的解决方法这篇文章将为大家详细讲解有关SQL附加数据库失败问题的解决方法,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。为了偷个懒,利用这个数据

    攻略 2021年11月30日
  • 牵绊的意思,会成为一生的牵绊是什么意思

    技术牵绊的意思,会成为一生的牵绊是什么意思“会成为一生的牵绊”意思是,会成为这一生的爱恋牵绊的意思。牵绊:牵扯,纠缠使不能脱开。 就是牢固的“姻缘”使彼此永远占据着对方心里的一席之地,也许是痛,也许是美好。不单单指爱情,

    生活 2021年10月23日
  • 如何使用文档给mongodb写数据(mongodb怎么在可视化上连接服务器)

    技术如何将数据从Web服务处理到MongoDB中本篇内容主要讲解“如何将数据从Web服务处理到MongoDB中”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何将数据从Web

    攻略 2021年12月23日