1.AngularJs指的是angular 1.x框架,Angular一般指的是2和4
2.angularjs是什么:是一个js框架,帮助我们写页面的,是由谷歌公司创建,遵循MIT协议,开源开放
3.angularjs主要应用于增删改查等数据操作比较频繁的,比如说购物车,后台管理系统。然而游戏,图形界面的编译器这种频繁的操作dom模型是不适用的。
4.angularjs的特性:
(1)MVC模式(数据模型,视图,控制器三部分)
(2)模块系统
(3)指令系统
(4)依赖注入
(5)数据双向绑定
5.angularjs的缺点
(1)对dom操作支持较弱,当然也可以使用jq
(2)html中过多指令,事件绑定的操作,耦合度较高
6.为什么需要mvc,js模块化
(1)代码规范越来越大,切分职责是大势所趋
(2)为了复用代码,很多逻辑都是一样的,封装
(3)为了方便后期的维护,修改一块功能不影响其他功能
7.下面是一些angularjs的使用语法:
(1)表达式:注意,使用angularjs时,需要先下载引入到项目目录中
(2)在html文件中,写angularjs的语句时,要在父标签的外部写一条指令,用来知名入口文件,ng-app。
(3){{1+2}} //3
(4){{1+2}}--{{[1,2,3,4][2]}}--{{{name:’allen’}.name}}--{{2>1?’haha’:’heihei’}}
(5)输出结果是:3--3--allen--haha
(6)表达式定义变量:
只要赋值了在上面就能使用,不是说一个变量在上面定义,只能在下面使用,而angularjs定义了变量之后,可以在变量前面使用,类似于变量提升,但又不完全是变量提升,因为这个输出的就是变量的值,并不是undefined
(7)还有一个问题就是,我们在给一个变量赋值的时候,angularjs会把变量的值,执行一遍然后输出出来,而实际上我们不想输出,这时,就有了另外一条指令ng-init在这条指令里面写变量就可以在下面用,注意指令是ng-什么,这个指令是只能写在标签里面的
(8)其实ng-app是为了定义主模块的入口,就相当于在这个主模块里面写js代码。
8.定义主模块:
var app = angular.module(‘myapp’,[])//第一个参数是模块名,第二个参数先写一个空数组
app.controller(‘mycontroller’,function($scope){//第一个参数是控制器名,第二个参数是函数
$scope.name = “二狗子”//注意函数的参数$scope是不可以修改的,叫依赖注入特性
})
<div ng-controller=”mycontroller”>
{name}//这是一个封地,说明是mycontroller这个控制器控制的,是可以访问数据的
</div>
9.介绍一个指令:ng-bind:阻止花括号闪现,因为当运行时不会执行这一句,当读到引入angularjs的代码的时候,angular会执行这句话,并且把标签原有的内容隐藏掉,显示现在
10.有一个依赖注入,是$scope,是作为一个函数的参数进行注入的,但是当项目上线的时候,需要压缩代码,会把原本长的参数,压缩成一个短的字母,所以就不能用了,所以angular想了一个方法,用数组接收一下。
app.controller(“mycontroller”,[‘$http’,’$scope’,function(a,b){
b.name = “二狗”
}])
11.除了$scope这种函数参数不叫服务,别的在函数的参数里面进行依赖注入的叫做服务,每一个服务都会提供一个功能,比如说:$rootscope作用:往根作用域挂数据,全局的,这是必须有控制器的,还有一种方法也可以实现全局,不用使用控制器
12.app.run(function($rootscope){
$rootscope.tel = ‘1111’
})
注意一种嵌套写法,子元素可以继承父元素的变量,但是父元素不可以机车继承子元素的变量,全局变量都可以使用。