标签:
话说以前JQuery刚出来的时候,真的是对个人的冲击蛮大的。记得当时我买的第一本书就是《锋利的JQuery》,藉由这本书开始,我从此以后的项目基本用上了JQuery,其给我带来的便利性是不可言喻的,至少在当时,我奉之若掌上明珠。但是做了几年开发以后,逐渐发现其不便利的地方,尤其是频繁操纵Dom的场合。写一个五级联动,不仅要操作ajax,而且要操纵dom,更需要兼顾ajax请求完成的顺序。开始用的五层嵌套来完成的,发现代码太难看,然后重构成了利用TimeOut来进行操纵的场合,结果发现在网速很差的情况下总会出现加载错误的情况出现。即便最后改用了Promise来实现了ajax的按顺序加载,但是依然改不了那一坨坨的js操纵dom的代码在我心里留下的稍微恶心的感觉。因为那时候我真的觉得干了那么多年的程序了,不能写出个简洁明了的代码来,真的是挺有失落感的。从这几年的编程生涯看来,开始编程的时候,啥都不管,只要能用就行;有点追求的时候,拿个框架用用,总算是提高了品味;真正到了会编程的时候,才觉得简洁是最美好的东西,正所谓:少年听雨歌楼上,红烛昏罗帐。壮年听雨客舟中。江阔云低、断雁叫西风。而今听雨僧庐下。鬓已星星也。悲欢离合总无情。一任阶前、点滴到天明。
而今编程,以简洁为要,所以任何简洁的东西,都能引起我的注意,一不小心,AngularJS成了首选。
首先来说明一下AngularJS适用的场合:单页面的复杂程序,和用户交互能力比较强的页面。尤其适合CRUD类的页面。所以在这里我们可以看出其适用场合。如果单单是为了展示数据什么的,我看直接就免了AngularJS吧,毕竟可以在页面直接操纵一下,免了写Controller的烦恼。
然后需要说明的是AngularJS属于MVVM和MVC混合的产物。之所以说属于MVVM,是因为她可以监听到数据的变化,当前的任何数据变化,都会反映到界面上。其次就是她也是利用Controller来策动Model和View之间进行展示的。大家可以去专门详细看一看MVVM和MVC的架构思想,我这里主要是抛砖,至于怎么引玉就在于各位看官了。
下面我们就来一一分解其主要的知识点,如果这些知识点Hit到了你,但愿能够引发共鸣。
一、Module,字面意思是模块化,也就是体现当前模块的作用范围。
一个页面上必须有一个利用ng-app指明的module,这样就能明白当前模块作用的dom元素的范围。假如我们放在了body元素上,那么作用范围就是整个body;如果放在了div上,那么作用范围就是当前整个div。切记一定不要忘记加这个属性,否则你后面的程序写的再多,再好,你怎么写都不会有任何结果的。
//定义Module
var app = angular.module("myApp", []);//定义作用范围,这里是整个Body
<body ng-app="myApp">
二、Controller,控制器,用于协调Model和View显示的地方
app.controller(‘MainController‘, [‘$scope‘, function($scope) {
$scope.title = ‘Top Sellers in Books‘;
}]);
在这里,我们在app的module上定义了一个名称为MainController的控制器,并注入了$scope对象。需要说明的是,在Controller中,注入的对象都是通过string字符串的形式追加进来的,AngularJS会自动根据这些字串,然后反射成相应的对象。
在HTML中,我们增加此Controller的作用范围:
<div class="main" ng-controller="MainController">
前端见微知著AngularJS备忘篇:温故而知新,可以为师矣
标签:
原文地址:http://www.cnblogs.com/scy251147/p/4845114.html