码迷,mamicode.com
首页 > Web开发 > 详细

前端见微知著AngularJS备忘篇:温故而知新,可以为师矣

时间:2015-09-28 23:47:09      阅读:213      评论:0      收藏:0      [点我收藏+]

标签:

话说以前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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!