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)

相关推荐

  • 怎么理解iOS开发中Cocos2d-x的CCSpriteBatchNode

    技术怎么理解iOS开发中Cocos2d-x的CCSpriteBatchNode怎么理解iOS开发中Cocos2d-x的CCSpriteBatchNode,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解

    攻略 2021年11月11日
  • 如何解决java连接zookeeper很慢的问题

    技术如何解决java连接zookeeper很慢的问题这篇文章主要为大家展示了“如何解决java连接zookeeper很慢的问题”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如

    攻略 2021年11月11日
  • 2021-2022-1 20211308《信息安全专业导论》第十周学习总结

    技术2021-2022-1 20211308《信息安全专业导论》第十周学习总结 2021-2022-1 20211308《信息安全专业导论》第十周学习总结2021-2022-1 20211308《信息安

    礼包 2021年11月27日
  • Puppeteer怎么启动交互模式

    技术Puppeteer怎么启动交互模式这篇文章主要讲解了“Puppeteer怎么启动交互模式”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Puppeteer怎么启动交互模

    攻略 2021年10月21日
  • Python使用协程的缺点是什么

    技术Python使用协程的缺点是什么这篇文章给大家分享的是有关Python使用协程的缺点是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1、多核资源不能使用:协程的本质是单线程,它不能同时

    攻略 2021年10月27日
  • isemodelsim仿真步骤(ise如何使用modelsim仿真)

    技术怎么进行ModelSim独立仿真ISE的仿真工程本篇文章为大家展示了怎么进行ModelSim独立仿真ISE的仿真工程,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。详细操作步骤

    攻略 2021年12月22日