angular入门系列教程2
主题:
本篇主要介绍下angular里的一些概念,并且在咱们的小应用上加上点料。。
概念(大概了解即可,代码中遇到的会有详细注释):
模板:动态模板,是动态的,直接去处理DOM的,而不是通过处理字符串模版(静态模板)
mvc:核心思想实现“数据管理-数据模型Model、应用逻辑-控制器Controller、数据表现-视图View”三者的之间的分离。view从model获取数据把数据展示到界面上,当有用户操作处理交互时,控制器controller去改变数据model,然后通知view去做相应的改变;各司其职。
双向绑定:意味着当model变化的时候,view也去改变,view改变的时候,model也会相应的发生变化,也就是MVVM的概念,VM就是view和model的枢纽所在。
scope:是一个view和控制器之间的纽带,也就是作为数据模型model的,scope负责去监听model的变化,同时scope是和html结构一样具备层次结构的,每个angular app都会有且只有一个rootScope,他可以有childScope,每个childScope会有parentScope和childScope,也就意味着是可以继承的,继承方式也是原型继承,每一个childScope继承自他的parentScope。
controller:view后的代码,在angular中,规范的是在controller中不出现任何的DOM操作,controller仅仅是去更改(创建)scope上的数据就ok了,所以在ag中跑单元测试时很容易的。
model:数据模型,与模板结合产生视图,在angular中,他是scope的一个属性,值可以是任何的JS的对象(数字 字符串 数组...)
view:就是咱们的HTML呈现,angular会便利DOM树,然后经过compile,在和scope数据结合,完整的呈献给用户。
directive:指令,可以说是angular中相当占分量的概念,可以理解为去扩展HTML元素,使其具备一定的特性或者功能,类似于组件化HTML的意思,如果说DOM操作的话,就是在这里完成的;有人说这是未来的方向还是很有道理的,未来通道polymer O(∩_∩)O
依赖注入:其他好多语言也有这个概念,这样我们就不用创建依赖关系了,angular会自动帮我们注入到调用函数的参数中。
module:模块,可以理解为某类功能特性的集合,是一个应用块,模块是可以被依赖注入的,也是配置依赖的地方。
表达式:一个普通的JS代码片段,我们可以通过$parse服务对表达式求值,除了if else switch throw while for啊这些,基本上其他的JS代码片段都可以被parse求值,此外还增加了过滤器filter的管道|语法,例如3*10|currency,详见官网。
当然,还有一些概念这里是没涉及到的,例如service啊等等,等后边用到的时候,再去看也ok。
效果图:
细节:
说一下咱们的目的,密码长度限制,最长不超过10位,咱这里只是简单的demo,所以定10位;但用户输入的密码长度超过10的时候,提示用户,同时下边的预览区域,显示的输入密码只会显示10个,超出部分不显示。
之后会模拟注册(这里也意味着登录成功),然后跳转到主页,也就是咱们的主题内容部分。
详见代码注释即可。。
结束语:
开始旅程。。
本篇源码:https://github.com/dolymood/angular-example/tree/ls_2
欢迎吐槽
angular入门系列教程2的更多相关文章
- angular入门系列教程目录
本系列教程的目标很明确,就是入门,会一步一步的从零到最终的能写出一个基本完整的应用.这个过程中不去纠结一些概念或者是如何实现等等深入的东西,只是停留在应用层. ps:如果条件允许的话,后续会有深入一点 ...
- angular入门系列教程4
主题: 本篇主要目的就是继续完善home页下的index子页面的内容,处理一个列表,进行增删改查过滤等操作. 效果图: 细节: 主要的更改有两个,一个是修改模板index.html,还有就是增加控制器 ...
- angular入门系列教程3
主题: 本篇主要目的就是继续完善home页,增加tab导航的三个页index index1 index2 效果图: 细节: 初始化的JS就是咱们的home.js,仔细来看. angular的route ...
- angular入门系列教程1
主题: 一个能够跑起来的页面,神奇的效果,无需一样JS代码! 效果图: 细节: 当然,这里甚至连登陆都没做,只是看到神奇的当输入用户名或者密码的时候,下面的预览区域也会有相应的更改.没有一行的JS代码 ...
- Angular2入门系列教程7-HTTP(一)-使用Angular2自带的http进行网络请求
上一篇:Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数 感觉这篇不是很好写,因为涉及到网络请求,如果采用真实的网络请求,这个例子大家拿到手估计还要自己写一个web ...
- Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数
上一篇:Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数 之前介绍了简单的路由以及传参,这篇文章我们将要学习复杂一些的路由以及传递其他附加参数.一个好的路由系统可以使我们 ...
- Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数
上一篇:Angular2入门系列教程-服务 上一篇文章我们将Angular2的数据服务分离出来,学习了Angular2的依赖注入,这篇文章我们将要学习Angualr2的路由 为了编写样式方便,我们这篇 ...
- Angular2入门系列教程4-服务
上一篇文章 Angular2入门系列教程-多个组件,主从关系 在编程中,我们通常会将数据提供单独分离出来,以免在编写程序的过程中反复复制粘贴数据请求的代码 Angular2中提供了依赖注入的概念,使得 ...
- ASP.NET MVC 入门系列教程
ASP.NET MVC 入门系列教程 博客园ASP.NET MVC 技术专题 http://kb.cnblogs.com/zt/mvc/ 一个居于ASP.NET MVC Beta的系列入门文章,有朋友 ...
随机推荐
- sql server 锁学习
insert 默认加的锁是 不允许select,update 但是可以insert update 默认加的锁是 不允许 update 可以 select ,insert
- js利用数组length属性清空和截短数组
1.使用length清空数组: 代码如下 复制代码 <script> var arr1 = ['aaa','bbbb','http://www.111cn.net']; ale ...
- UIWebView [web视图]
#import "ViewController.h"#define width_screen self.view.bounds.size.width#define height_s ...
- 嵌入式 linux 移植修改后的libjpeg 实现内存中解码
1.修改libjpeg源码,使之实现内存解码. 修改libjpeg中读取或者输出jpeg文件的函数接口文件jdatadst.c和jdatasrc.c见下面这篇帖子. http://blog.163.c ...
- 如何自学java迅速成为java高手
要想学好Java,首先要知道Java的大致分类.我们知道,自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ...
- 7款值得你心动的HTML5动画和游戏
1.HTML5 Canvas粒子效果文字动画特效 之前我们分享过很多超酷的文字特效,其中也有利用HTML5和CSS3的.今天我们要来分享一款基于HTML5 Canvas的文字特效,输入框中输入想要展示 ...
- Codevs 1014 装箱问题
题目描述 Description 有一个箱子容量为V(正整数,0<=V<=20000),同时有n个物品(0<n<=30),每个物品有一个体积(正整数). 要求n个物品中,任取若 ...
- Easyui datebox控件打开页面就验证解决方法
问题描述: datebox时间控件有些场景下默认值需要为空,但是为空的情况下打开页面会自动验证,十分影响美观. 实现原理: <input class="easyui-databox&q ...
- C# 汉字转拼音(转)
(一)将汉字转化成全拼代码: private void button1_Click(object sender, EventArgs e) { this.textBox2.Text = Hz2Py.C ...
- FAN_int2ExcelColChar functions
static void FAN_int2ExcelColChar(Args _args) { Dialog dlg = new dialog("please enter int number ...