每次一想到ng,首先映入脑海的应该有以下一些词:双向数据绑定,模块,控制器,指令,过滤器,服务,依赖注入,路由,视图......等等。
今天就从最基本的控制器和服务说起,来谈谈angular是如何实现MVC的。
首先比方说我们要在页面上实现当前时间的显示,如果说用后端语言不如java来实现的话,那很简洁,获取系统时间进行你想要的格式化输出就好,我这里直接打印出来了
现在我们用angular的方式来更好的实现这一小demo,下载后导入angularjs文件,先上代码
1.<script>标签载入angularjs文件后,开始搭建简单显示时间的html,一个div,后续js中定义的控制器就作用在这个div上
2.angularjs模块注入了一个服务,名称叫“TimeServer”,这个服务就是用来获取当前时间的,在这个服务中,function函数中又注入了一个ng的内置服务$timeout(ng中所有的内置服务都用$开头,服务可以被控制器使用,也可以被另外的服务使用)。服务中,一开始定义了一个对象time(后面将这个time对象返回),接着有一个自执行函数(每隔1秒,给time对象的now属性赋值),最后将time对象返回
3.控制器中将自定义的服务接收进来,赋值给域对象中的mytime属性,这时候,这个mytime属性就有了服务对象都有的特征
4.页面中显示的就是mytime属性从服务中获取到的当前时间
angularjs很好的实现了mvc架构,将视图层与业务逻辑代码,以及数据模型层分离开来,这样,我们在写代码的时候就能更好的去写我们的js逻辑了,也有利于后期代码的维护.
angularjs官方文档:查看api
AngularJS 基础视频教程 by Dan Wahlin