1.ng-app 边界指令:规定了使用angular使用范围;在这个ng-app的范围里面 可以使用angular语法
ng-app 不赋值
ng-app='myApp'(ang创建模块的时候限制边界,使用)
创建angular模块 ng-app='名称' 一般都要名字
<html lang="en" ng-app='myApp'>//赋值
<html lang="en" ng-app>//不赋值
2.{{}} 表达式 变量 函数() 简单的运算
AngularJS 表达式写在双大括号内:{{ expression }}
作用:显示数据 把数据显示到视图上面
<h2>{{1+2}}</h2>
3.ng-model:内置指令:用在input 双向数据绑定,可以获取input里面输入的内容 textarea
ng-model='msg' 把用户输入的信息数据 存储在msg变量上;
<input type="text" ng-model='msg' ng-init='msg="hello world"'>
<!-- 展示数据同步 -->
<p ng-bind='msg'></p>
4.ng-init:初始化数据
说明:ng-init='msg="hello world"'
<div ng-init='mm="期待改变数据"'>
{{mm}}
</div>
5.ng-bind 和{{ }} 显示数据
{{}} 没有引入angular会显示{{}}
ng-bind:如果angular没有加载的时候,什什么都不不显示
6.ng-controller=‘名字’
angular设计模式:mvc
m:model 模型 数据
v: view 视图 页面(html)
c: controller 控制器 控制视图和模型数据
PS:页面里面可以有多个控制器;每个控制器作用域在当前控制器里面;
app.controller('控制器名字',['$scope','$rootScope',function($scope){
//$scope.是angular里面给我们提供的对象 内置服务
//$scope 连接数据和视口
}])
7.ng-repeat='' 遍历数据
说明:ng-repeat='变量名 in 数组' 遍历数组每一列的值 给变量名
$index 获取当前列的下标---(重点)
$first 判断是否是第一元素
$last 判断是否是最后一元素
ps:
一般是取到数组时,采取页面遍历;
遍历数组 不允许有重复的信息;
如果有,添加标识 track by $index;
<li ng-repeat='item in arrList track by $index'>{{item}}{{$index}}</li>
8. ng-if /ng-else ng-if=true 显示 内容 false隐藏
9. ng-show='boolean' true 显示 false 不显示 是否显示
10.ng-hide='boolean' true 不显示 false 显示 是否隐藏
ng-if=''true 显示 false 不显示 是否显示
可以存变量 也可以存Boolean表达式 ;
区别:
ng-show /ng-hide 控制css的display:none显示隐藏的
ng-if/ng-else 控制dom元素 是否存在
<div ng-show='flag'>show</div>
<div ng-hide='flag'>hide</div>
<div ng-if='flag'>if</div>
<script>
var app=angular.module('app',[]);
//控制器
app.controller('mainctrl',['$scope',function($scope){
//控制flag 显示隐藏
// $scope.flag=true;
$scope.flag=false;
}])
</script>
11、事件
ng-事件名='函数名()'
ng-click='' ng-mouseenter=''....
绑定事件
作用:给元素绑定指定的事件
语法:<E ng-事件类型='函数调用()'></E>
说明:1.事件类型就是js中的事件类型
2.事件可以指定函数调用,也可以写表达式
3.事件对象是$event
4.函数调用时可以传递实参
<button ng-click='demo()'>点我试试</button>
<button ng-mouseenter='enter()'>鼠标移入</button>
<script>
var app=angular.module('app',[]);
//控制器
app.controller('mainctrl',['$scope',function($scope){
//事件 --方法
$scope.demo=function(){
console.log('出来了');
};
$scope.enter=function(){
console.log('鼠标出来了');
}
}])
</script>
12.定义控制器(作用域)
作用:把页面分割成不同的作用域
语法:模型.controller('名称',function($scope){
})
说明:1.controller是模型上的一个方法
2.参数1,是控制器名称,名称不能重复
3.参数2,有两种写法
第一种:直接写一个函数
第二种:以数组形式写,数组中最后一项是函数,函数前面的数组项是需要依赖注入的服务。
还有一个功能是防止代码压缩时把依赖注入的服务名称改变了,在真实项目开发时使用第二种数组形式的写法。模型.controller('名称',['$scope',function($s){}])
4.$scope,在当前作用域下注入局部的作用域对象,在当前作用域下所有angular管理的变量、方法都必须定义在$scope上
<!-- 第一个控制器 -->
<div ng-controller='div1'>
<h2>{{share}}</h2>
{{div1}}
</div>
<hr>
<!-- 第二个控制器 -->
<div ng-controller='div2'>
{{div2}}
<h2>{{share}}</h2>
</div>
<script>
//模型:
var app=angular.module('app',[]);
//$scope 作用域范围:当前的控制器里面 局部范围
//$rootScope 根控制器 作用域范围是全局的
//第一个控制器
app.controller('div1',['$scope','$rootScope',function($scope,$rootScope){
$scope.div1='我是第一个控制器盒子';
//公共的属性 方法
$rootScope.share='公共的数据 都可以调用';
}])
//第二个控制器
app.controller('div2',['$scope',function($scope){
$scope.div2='我是第二个控制器盒子';
}])
</script>
13. ng-class=''
添加样式(ul隔行换色)
<ul>
<li ng-repeat='item in arr' ng-class='{pink:$index%2==0}'>
{{item}} {{$index}}
<!-- <button ng-show='$index%2==0'>删除</button> -->
<button ng-click='del($index)'>删除</button>
</li>
</ul>
var app=angular.module('app',[]);
app.controller('main',['$scope',function($scope){
// $scope.flag=false;
//案例
$scope.arr=['吃吃','喝喝','睡睡','玩玩','豆豆'];
//删除
$scope.del=function(a){//a形参
//this
// console.log(a);
this.arr.splice(a,1);
}
}])