热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Angular运用总结

前端开辟大部分时刻面临两类题目:一是营业逻辑,二是界面展现逻辑。在一个治理体系或互联网产物中,我们起首会经由过程营业数据对全部营业体系建模。所谓营业逻辑,反应到递次层面就是对一些营

前端开辟大部分时刻面临两类题目:一是营业逻辑,二是界面展现逻辑。在一个治理体系或互联网产物中,我们起首会经由过程营业数据对全部营业体系建模。所谓营业逻辑,反应到递次层面就是对一些营业数据的增编削查操纵;同时我们也须要将这些营业逻辑的操纵效果反馈给用户,这就是界面展现逻辑。比方当你在宣布一条微博,在营业逻辑上是多了一条微博数据,同时在界面上也须要将这条数据显现出来。在我看来,用户界面实质上就是营业数据的一种对用户友爱的展现形状。一个抱负的前端架构是将营业逻辑和界面展现逻辑完整星散,二者自力变化,互不影响。在我们斟酌营业逻辑的时刻,就不要斟酌界面展现的题目;在斟酌界面展现题目标时刻,就不要斟酌营业逻辑的题目。假如将二者耦合在一起,那末在面临复杂题目标时刻可以就会进退维谷,无从下手。

MVC形式的重要目标就是将营业逻辑和界面展现星散。虽然关于C(Controller)是有争议的,然则M(model)和V(view)是广泛认同的。将营业逻辑和界面展现星散的症结也在model和view的星散。angular是一个异常优异的MV*框架,异常好的表现了MVC的头脑,本文将从该角度来引见angular的一些运用心得。

需求

《Angular运用总结》

这是一个厥后治理页面,用来设置各个客户端的banner显现。页面重要有以下功用:
1.编辑banner信息,可以设置banner的范例和上传banner图片。
2.删除和插进去。
3.高低挪动banner递次。
4.保留。

完成营业逻辑

不斟酌页面展现,我们可以先完成营业逻辑。各个端banner列表的逻辑是一样的,只是范例以及与背景的交互接口不一样。我们可以将banner的这些列表逻辑定义成一个service,差别端的列表都可以重用这个service。其定义以下。

《Angular运用总结》

这个service的完成异常简朴,就是对一个banner数组举行增编削查。

完成界面展现逻辑

完成完营业逻辑我们再来处理界面展现的题目。angular供应了一个异常壮大的模版引擎,经由过程指令和表达式就能将数据显现到界面。怎样才模版中运用这些营业数据和要领呢?我们须要将这些数据和要领写到scope对象中,scope对象定义了对应模版可以运用的数据和要领。bannerCollection service的attach(scope)要领就是将对应的banner数据和要领写到scope对象中以便能在模版中运用。下面的代码是在mobile controller中运用bannerCollection service,并经由过程其attach要领和对应的scope对象绑定。

《Angular运用总结》

将数据和要领注册到scope对象后,我们就可以在模版中运用了。下图是模版的一部分。

《Angular运用总结》

ng-repeat指令用来展现banner列表,双花括号用来输出数据,ng-click用来响运用点击。angular框架供应了很多异常有效的内建指令,基本上能满足我们大部分的需求了。除了内建指令,angular还为我们供应了自定义指令的接口,经由过程自定义指令我们可以扩展出异常丰富的web组件。在这个banner治理页面中,有个上传banner图片的功用,我们就可以将其封装成一个指令。

《Angular运用总结》

如上图,该指令的完成重要在link要领中。每一个自定义指令都可以完成这个要领,当模版引擎在链接模版的时刻会回调指令的link要领,调用时将当前的scope和element作为参数传进来。link要领异常重要,它表现了指令的实质:scope到element之间的一个桥梁,实在也就是model到view的一个桥梁。我们可以在这个link要领中监听element的事宜来响运用户操纵并修正scope中的数据;也可以监听scope中数据的变化将其反应到用户界面上。scope对象有个$watch要领,可以经由过程该要领去监听scope中须要体贴的数据的变化。
在这个图片上传的指令中,我们在link要领中监听了用户挑选文件的事宜。当用户挑选文件后,经由过程post要求将图片上传到背景天生url和dsfid,同时更新scope中的img数据;ng-repeat指令在监听到scope中img数据的变化后又会革新响应的界面展现。

结语

angular为我们供应了一个异常好的营业逻辑和界面展现逻辑星散的机制,极大地简化了前端开辟。迥殊关于数据型运用,angular是异常好的挑选。


推荐阅读
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文介绍了Perl的测试框架Test::Base,它是一个数据驱动的测试框架,可以自动进行单元测试,省去手工编写测试程序的麻烦。与Test::More完全兼容,使用方法简单。以plural函数为例,展示了Test::Base的使用方法。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • Android系统源码分析Zygote和SystemServer启动过程详解
    本文详细解析了Android系统源码中Zygote和SystemServer的启动过程。首先介绍了系统framework层启动的内容,帮助理解四大组件的启动和管理过程。接着介绍了AMS、PMS等系统服务的作用和调用方式。然后详细分析了Zygote的启动过程,解释了Zygote在Android启动过程中的决定作用。最后通过时序图展示了整个过程。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 本文讲述了如何通过代码在Android中更改Recycler视图项的背景颜色。通过在onBindViewHolder方法中设置条件判断,可以实现根据条件改变背景颜色的效果。同时,还介绍了如何修改底部边框颜色以及提供了RecyclerView Fragment layout.xml和项目布局文件的示例代码。 ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • Android源码中的Builder模式及其作用
    本文主要解释了什么是Builder模式以及其作用,并结合Android源码来分析Builder模式的实现。Builder模式是将产品的设计、表示和构建进行分离,通过引入建造者角色,简化了构建复杂产品的流程,并且使得产品的构建可以灵活适应变化。使用Builder模式可以解决开发者需要关注产品表示和构建步骤的问题,并且当构建流程发生变化时,无需修改代码即可适配新的构建流程。 ... [详细]
  • SpringBoot简单日志配置
     在生产环境中,只打印error级别的错误,在测试环境中,可以调成debugapplication.properties文件##默认使用logbacklogging.level.r ... [详细]
  • 本文讨论了在ASP中创建RazorFunctions.cshtml文件时出现的问题,即ASP.global_asax不存在于命名空间ASP中。文章提供了解决该问题的代码示例,并详细解释了代码中涉及的关键概念,如HttpContext、Request和RouteData等。通过阅读本文,读者可以了解如何解决该问题并理解相关的ASP概念。 ... [详细]
author-avatar
mobiledu2502895137
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有