开始使用 Parse.js 创建博客:删除、注销和查看个人博客文章

开始使用 parse.js 创建博客:删除、注销和查看个人博客文章

在上一届会议中,您重构了整个博客系统。现在一切都已清理干净,您已准备好加速进行一些新的冒险。在本次会议中,我们将围绕路由器做更多的事情,并向我们的博客系统添加三个功能:删除、注销和单个博客视图。

1。删除

在第 6 部分中,我们介绍了编辑功能。您很可能还想删除您的一篇博客文章。有两个地方可以放置此函数:将其添加到 BlogsAdminView 中,或者将其发送到 URL 并在 Router 中处理。

我将向您展示路由器的方式。它更常用,并且使代码更加结构化。

第 1 步:添加 URL 模式

像往常一样,我们先添加一个 URL 模式:

routes: {'': 'index','admin': 'admin','login': 'login','add': 'add','edit/:id': 'edit','del/:id': 'del'}

第 2 步:删除链接

然后,更新管理页面中的链接:

Delete

第 3 步:del 函数

现在,让我们向 Router 添加一个新的 del 函数来处理它。这非常简单:使用我们从 URL 传入的 id 找到博客文章,并将其销毁。

尝试挑战自己,在不阅读我的代码的情况下编写它。此时您应该已经很好地掌握了 Parse.js。

del: function(id) {var query = new Parse.Query(Blog);query.get(id).then(function(blog){blog.destroy().then(function(blog){alert('Deleted!');})});}

请注意,您可以在此处使用 .then() 函数,而不是像我们之前那样传递对象:

query.get(id, {success: function(blog) {...},error: function(blog, error) {...}});

这是在 Parse.js 中添加回调函数的简单方法,使您的代码更干净、更具可读性。请访问 Parse.com 查看有关 Promise 的完整文档。

让我们对其进行测试运行,并仔细检查数据库以查看它是否正常工作。

开始使用 Parse.js 创建博客:删除、注销和查看个人博客文章

恭喜,它正在工作!

第 4 步:重定向回管理页面

如果你注意一下URL,你会发现,点击掉警告框后,URL仍然是/del/,而你刚刚删除的帖子仍然存在。我们希望在删除后将用户发送回管理页面,并且该页面应该刷新并反映他们刚刚所做的更改。

您可以通过重定向来实现所有这些:

del: function(id) {var self = this,query = new Parse.Query(Blog);query.get(id).then(function(blog){blog.destroy().then(function(blog){self.navigate('admin', { trigger: true });})});}

请注意,因为这次您从路由器内部调用 navigate,所以您可以将路由器存储为 self,然后调用 self.navigate()

第 5 步:检查登录

最后,我们需要确保您是唯一可以删除您的博客帖子的人。让我们检查一下该功能的登录。这应该与 edit 函数相同。

del: function(id) {if (!Parse.User.current()) {this.navigate('#/login', { trigger: true });} else {...}}

2。注销

与删除一样,注销也可以由路由器处理。它还从添加 URL 模式开始:

routes: {...'logout': 'logout'},

Parse.js 中的注销功能本身非常简单。只需调用 Parse.User.logOut() ,然后重定向到 /login 页面:

logout: function () {Parse.User.logOut();this.navigate('#/login', { trigger: true });}

最后,让我们向 #admin-tpl 添加一个按钮:

      Logout

开始使用 Parse.js 创建博客:删除、注销和查看个人博客文章

如您所见,样式确实不是本教程的重点。您可以随意修复填充并根据需要设置样式。

3。单个博客视图

现在让我们继续开发一些新功能。

到目前为止,我们正在主页上显示整篇博客文章。虽然有些人确实喜欢这种风格,但大多数博客系统都支持预先提供片段摘要的想法,如果访问者点击文章,他们就可以在单独的页面上看到内容,周围可能还有一些评论区域。

我将在本次会议中引导您创建这个详细的单一博客视图,我们将在下一次会议中重点关注构建评论。

第 1 步:添加摘要列

首先,我们在博客表中添加一列作为摘要:

开始使用 Parse.js 创建博客:删除、注销和查看个人博客文章

第 2 步:在 WriteBlogView 中包含摘要

现在,让我们将其添加到 Blog.update() 函数中。您可以更改该函数以获取包含标题、摘要和内容的数据对象,以避免记住变量的顺序。

update: function(data) {// Only set ACL if the blog doesn't have it...this.set({'title': data.title,'summary': data.summary,'content': data.content,...}).save(null, {...});}

#write-tpl中再添加一个作为摘要:

// Put this form-group in between the form-group for title and contentSummary{{summary}}

并相应地更改 WriteBlogView.submit() 函数:

submit: function(e) {...this.model.update({title: data[0].value, summary: data[1].value,content: data[2].value});}

现在,由于我们在模板中添加了一个新变量,因此我们需要在 WriteBlogView.render() 函数中为其指定一个默认的空值:

render: function(){...if (this.model) {...} else {attributes = {form_title: 'Add a Blog',title: '',summary: '',content: ''}}...}

如果您对内容使用 wysihtml5 插件,您会注意到之前我们的目标是所有 元素:

this.$el.html(this.template(attributes)).find('textarea').wysihtml5();

让我们为内容文本区域指定一个类,并仅使用 wysihtml5 插件来定位该类。

#write-tpl中:

{{{content}}}

WriteBlogView.render()函数中:

this.$el.html(this.template(attributes)).find('.write-content').wysihtml5();

现在可以使用了!

开始使用 Parse.js 创建博客:删除、注销和查看个人博客文章

第 3 步:在主页上显示摘要

使用新的撰写博客页面并添加一些带有摘要的博客文章,并提取摘要而不是#blogs-tpl中的内容:

{{#each blog}}{{title}}At {{time}} by {{authorName}}{{summary}}{{/each}}

第 4 步:添加 SingleBlogView 页面

花一点时间考虑一下如何添加 /blog/:id 页面来显示每篇博客文章的内容,并尝试自己完成。您现在应该能够自己完成这一切了!

但为了本教程的目的,让我给您快速演练:

为此页面添加新的 HTML 模板:

{{title}}

{{{content}}}

添加一个新的 BlogView 类,该类接受 blog 对象,并将其呈现在 #blog-tpl 中: p>

BlogView = Parse.View.extend({template: Handlebars.compile($('#blog-tpl').html()),render: function() { var attributes = this.model.toJSON();this.$el.html(this.template(attributes));}}),

BlogRouter 中添加新的 URL 模式:

routes: {...'blog/:id': 'blog',...}

并在 BlogRouter.blog() 函数中,通过 id 获取博客,渲染一个 blogView,并将其放入 $container:

blog: function(id) {var query = new Parse.Query(Blog);query.get(id, {success: function(blog) {console.log(blog);var blogView = new BlogView({ model: blog });blogView.render();$container.html(blogView.el);},error: function(blog, error) {console.log(error);}});}

最后,更新#blogs-tpl中的链接以链接到此页面:

{{#each blog}}{{title}}At {{time}} by {{authorName}}{{summary}}{{/each}}

尝试一下:

开始使用 Parse.js 创建博客:删除、注销和查看个人博客文章

如果您自己完成此操作,可加分。

结论

在本次会议中,您构建了很多内容:删除功能、注销功能和另一种新页面类型。如果您到目前为止一直在关注本教程系列,我认为您对数据库、模型、视图、模板和路由器如何协同工作有深入的了解。我希望您现在也开始喜欢构建 Parse.js 项目。请留下您的反馈并告诉我是否有帮助。

通过我们这次构建的这个单一博客文章页面,我们下次将添加评论部分。应该是一件有趣的事。敬请关注!

以上就是开始使用 Parse.js 创建博客:删除、注销和查看个人博客文章的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1551890.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
在HTML中,当媒体被用户或程序暂停时执行脚本?
上一篇 2025年12月21日 22:08:23
如何在HTML中添加元素的高度?
下一篇 2025年12月21日 22:08:38

相关推荐

  • archiveofownour最新入口链接分享_快速访问archiveofownour官网地址

    在广阔的数字世界中,存在着一个完全由爱好者为爱好者构建和维护的独特家园,它致力于保存和分享各种形式的同人创作。这个平台并非为了商业利益,而是源于对粉丝文化纯粹的热爱与尊重,它提供了一个稳定、无广告、并且高度自由的创作与阅读环境。 这里是创作者们可以安心发布作品、读者们可以尽情探索新世界的非营利性中央…

    2026年9月3日
    100
  • 内网环境下,如何不修改浏览器设置,让网站项目通过HTTP协议调用高拍仪?

    内网环境下网站项目如何通过HTTP协议调用高拍仪? 内网网站项目需要在现代浏览器(非IE)的HTTP环境下读取高拍仪画面,而navigator.mediaDevices.getUserMedia()方法因安全策略限制无法在HTTP下直接使用。 为了避免修改浏览器安全设置,最佳方案是采用中间层服务器方…

    2026年9月3日
    000
  • 从消费者洞察到销量提升:数据标签重塑企业商业增长全链路

    在数字经济蓬勃发展的今天,营销行业正经历着前所未有的变革。越来越多的品牌意识到,传统粗放式营销模式已难以满足消费者多元化需求,数据驱动决策成为企业破局的关键。 在数字营销的过程中,数据标签能够将用户复杂的行为轨迹转化为结构化信息,帮助企业构建多维用户画像、深度挖掘用户潜在需求,实现精准触达用户并赋能…

    2026年9月3日
    000
  • 东风汽车:旗下自主品牌已完成DeepSeek全系列大语言模型接入工作

    东风汽车旗下自主品牌全面拥抱deepseek大语言模型!2月8日,东风汽车宣布已完成deepseek全系列大语言模型在其自主品牌车型的接入工作,并将在近期陆续应用于岚图、猛士、奕派、风神和纳米等品牌车型。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 …

    2026年9月3日
    100
  • 苹果手机打字慢半拍怎么回事_苹果手机打字延迟卡顿问题解决方法

    输入延迟可通过更新系统、清理键盘缓存、切换输入法、重启设备、重装第三方输入法或还原所有设置解决。具体步骤依次为:检查iOS更新;还原键盘词典;添加并测试系统输入法;重启iPhone;卸载并重装第三方输入法;最后还原所有设置以排除配置问题。 如果您在使用苹果手机时发现打字出现延迟或卡顿,输入的内容不能…

    2026年9月3日
    100
  • 告别Swagger文档的臃肿:使用stfalcon-studio/swagger-bundle优雅管理API规范

    在开发一个大型的symfony应用时,我们的api文档已经膨胀到一个巨大的yaml文件,这使得维护和更新变得异常困难。每次修改都需要小心翼翼地处理整个文件,稍有不慎就会导致整个文档失效。更糟糕的是,大型文件也影响了代码编辑器的性能,导致编辑体验极差。 我们急需一种方法来组织和管理这些不断增长的api…

    2026年9月3日
    000
  • 苏丹的游戏完美世界思潮获得方法 思潮完美世界使用机制

    苏丹的游戏里,思潮往往能左右剧情的发展方向。【完美世界】这一金思潮在游戏中的作用尤为特殊。在受到纯净之神的祝福之前,你无法真正理解“完美”的含义。该思潮可在“虔信的审视”中获取。 以下是关于《苏丹的游戏》中完美世界思潮的获取与使用方式: 一、卡牌描述: 在你被纯净之神赐福之前,你根本不懂得何为真正的…

    2026年9月3日
    000
  • 华为搜索引擎入口快速访问_华为花瓣搜索官网的智能化体验分享

    花瓣搜索官网无法直接通过独立app访问,用户可通过桌面图标、下拉搜索框、语音唤醒或浏览器输入https://websearch.huawei.com进入;2. 其智能化体验包括ai语义理解、多源内容聚合、个性化推荐和隐私保护;3. 提升效率的技巧有开启搜索建议、管理搜索源、使用深色模式、调节字体、切…

    2026年9月3日
    000
  • Apache如何开启GZIP压缩功能

    gzip是一种流行的文件压缩算法,现在的应用十分广泛,尤其是在linux平台。gzip在现代浏览器中默认都是支持的,当一个纯文本文件使用gzip压缩可以减少70%以上的文件大小,压缩后可以大大降低了网络传输的字节数,使用gzip的好处就是可以加快网页加载的速度,同时是你的网站对搜索引擎更加友好。下面…

    2026年9月3日
    000
  • 批量查询关联数据:如何提升 IN 查询效率?

    高效处理批量关联数据查询 在数据库查询中,当需要根据一个可能长度不定的ID集合查找关联数据时,直接使用IN操作符的效率往往较低。本文将介绍几种优化方法,提升查询效率。 分批处理策略: 将庞大的ID集合拆分成多个较小的子集,分别执行查询。这种方法将大型查询分解成多个小型查询,从而降低数据库负担。 利用…

    2026年9月3日
    100
  • 小米cc9pro中查看运行内存的方法介绍

    php小编鱼仔为您介绍小米cc9 pro中查看运行内存的方法。小米cc9 pro是一款性能强劲的智能手机,了解手机运行内存情况对于提高手机性能至关重要。在小米cc9 pro手机上,您可以通过设置界面快速查看当前运行内存使用情况,也可以通过第三方应用了解更详细的内存占用情况。通过定期清理后台运行的应用…

    2026年9月3日
    100
  • UniApp中Uni-UI组件Easycom机制冲突:为何uni-list组件无法正常使用?

    UniApp开发:Uni-UI组件Easycom机制与uni-list组件冲突详解 在UniApp项目中集成Uni-UI组件库时,开发者经常会遇到组件冲突问题。本文将分析一个uni-list组件失效的案例,并深入探讨Easycom机制的应用及潜在问题。 问题:一位开发者成功引入Uni-UI组件库,但…

    2026年9月3日
    000
  • Linux中systemctl命令详细介绍

    linux systemctl是一个系统管理守护进程、工具和库的集合,用于取代system v、service和chkconfig命令,初始进程主要负责控制systemd系统和服务管理器。通过systemctl –help可以看到该命令主要分为:查询或发送控制命令给systemd服务,管理单元服务的…

    用户投稿 2026年9月3日
    000
  • Win7系统提示“文件丢失”导致无法自动安装驱动怎么办?

    新购置的电脑通常都需要安装驱动程序,但在安装的过程中,有时会出现一些问题。例如,有使用windows 7系统的用户反馈,在安装驱动时突然弹出“文件丢失”或者“找不到指定模块”的提示,从而导致驱动安装中断,只能选择手动安装。而造成“文件丢失”现象的主要原因通常是.dll文件缺失所引发的。 以下是具体的…

    2026年9月3日
    200
  • 高德地图连接CarPlay后没反应怎么回事_高德地图CarPlay连接异常解决

    首先检查高德地图的CarPlay权限设置,确保其在允许列表中;若问题仍存,依次尝试重启应用与CarPlay连接、更新高德地图至最新版本、还原网络设置并重新配对CarPlay;最后排查车载系统兼容性及USB供电情况,使用原装线缆并确认车辆系统已更新。 如果您在成功连接CarPlay后,高德地图在车机端…

    2026年9月3日
    000
  • 我国科学家观测到最强逻辑形式量子关联

    中国科学技术大学郭光灿院士团队取得重大突破,成功观测到强度最高的逻辑形式量子关联!该研究成果已发表在国际顶级期刊《科学·进展》上,并被《新科学家》杂志专题报道。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ ▲图示:(A) GHZ型悖论中互…

    2026年9月3日
    300
  • mysql中主键是索引吗

    mysql中主键不是索引。主键全称“主键约束”,是对表中数据的一种约束,它是表的一个特殊字段,该字段能唯一标识该表中的每条信息;而索引是一种特殊的数据库结构,由数据表中的一列或多列组合而成,可以用来快速查询数据表中有某一特定值的记录。 本教程操作环境:windows7系统、mysql8版本、Dell…

    2026年9月3日
    000
  • 小米11青春版怎样设置时间_小米11青春版设置时间方法

    php小编鱼仔为您介绍小米11青春版的时间设置方法。在日常使用中,正确设置时间对于手机功能的正常运行至关重要。通过简单的操作,您可以轻松地调整小米11青春版的时间设置,确保手机时间准确无误。接下来,让我们一起来了解小米11青春版时间设置的具体步骤,以便更好地管理您的手机时间。 1、大家首先打开设置,…

    2026年9月3日
    100
  • Workerman网络编程进阶:实现高效的游戏服务器

    Workerman网络编程进阶:实现高效的游戏服务器 随着游戏行业的不断发展,越来越多的游戏开发者开始关注游戏服务器的性能和效率。高效的游戏服务器能够提供更好的游戏体验,吸引更多的玩家。而Workerman作为一个高性能的PHP网络编程框架,正逐渐成为游戏开发者的首选。 本文将介绍如何使用Worke…

    2026年9月3日
    000
  • 深度系统教你解决win10引导坏道修复方法

    深度系统教你解决win10引导坏道修复方法深度系统教你解决win10引导坏道修复方法深度系统教你解决win10引导坏道修复方法深度系统教你解决win10引导坏道修复方法

    在使用电脑的过程中,用户可能会遇到硬盘出现坏道的情况,尤其是win10系统引导区出现问题时,该如何修复呢?通常情况下,逻辑性坏道是可以通过格式化分区来解决的。今天,小编为大家整理了一些相关的解决方案,有需要的朋友可以参考一下。 Win10引导坏道修复方法 第一步,打开“此电脑”窗口。 第二步,点击顶…

    2026年9月3日 用户投稿
    000

发表回复

登录后才能评论
关注微信