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)

相关推荐

  • 0094-leetcode算法实现之二叉树中序遍历-binary-tree-inorder-traversal-pythongolang实现

    技术0094-leetcode算法实现之二叉树中序遍历-binary-tree-inorder-traversal-pythongolang实现 0094-leetcode算法实现之二叉树中序遍历-bi

    礼包 2021年11月12日
  • 生成器与常见内置函数

    技术生成器与常见内置函数 生成器与常见内置函数异常捕获补充
    # 异常捕获的完整形式
    try:name
    except NameError as e:pass
    except Exception as e:p

    礼包 2021年11月23日
  • Hadoop基础知识有哪些

    技术Hadoop基础知识有哪些这篇文章主要为大家展示了“Hadoop基础知识有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Hadoop基础知识有哪些”这篇文章吧。Had

    攻略 2021年12月9日
  • 美国企业云服务器中的关键功能

    技术美国企业云服务器中的关键功能并非每个美国云服务器都会为您的企业提供相同的功能集。在为您的企业选择完美的美国云服务器环境时,您需要注意某些能够帮助您获得最佳性能、可扩展性和安全性的功能。1. 稳固的服务器网络 美国云服

    礼包 2021年11月9日
  • 三明治的英语,三明治和汉堡的区别在哪里

    技术三明治的英语,三明治和汉堡的区别在哪里老铁三明治的英语,你分得清三角形和圆形吗?哈哈哈,在壹周君浅薄的认知中,三明治都是三角形的呢,而汉堡都是圆形,他们最大的共通点都是夹夹夹,裹挟着各种配料吃吃吃。 开个玩笑啦,严谨

    生活 2021年10月25日
  • Vue+ElementUI怎么处理超大表单

    技术Vue+ElementUI怎么处理超大表单Vue+ElementUI怎么处理超大表单,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。最近公

    攻略 2021年11月23日