Angular内置指令(一)

时间:2022-11-12 17:55:18

要注意的是不要把自己开发的指令以ng开头,以免与内置指令冲突 

目录:ng-disabled,ng-readonly,ng-checked,ng-selected,ng-href,ng-src,ng-class,ng-style

ng-disabled

当它的值返回true时表示禁用当前元素,返回false时什么都不做

<body>
<!--在文本框输入内容时禁用按钮-->
<input type="text" ng-model="name"/>
<button ng-disabled="!name">disabled</button> <!--3秒后input框变为可用状态-->
<div ng-controller="myController">
<input type="text" ng-disabled="trueFalse"/>
</div> <!-- ng-readonly --><!-- true只读,false正常使用 -->
<input type="text" ng-readonly="true"/> <script>
angular.module("myApp",[])
.controller("myController",function($scope,$timeout){
$scope.trueFalse = true;
$timeout(function(){
$scope.trueFalse = false;
},3000) })
</script>
</body>

ng-readonly

同ng-disabled一样的用法,这个指令是设置是否只读

ng-checked

同ng-disabled一样的用法,true选中,false不选中

ng-selected

同样是true选中,false不选中

ng-href

如果用a链接的href的话,给页面绑定的数据没有过来的时候点击文本会刷新本页面,如果用ng-href的话,数据没有过来的时候链接是不可以点击的

<body>
<!--延迟两秒给页面输送数据,如果用a链接的href的话数据没有过来的时候点击文本会刷新本页面,
如果用ng-href的话,数据没有过来的时候链接是不可以点击的-->
<div ng-controller="myController">
<a ng-href="{{ myHref }}">myhref</a>
</div> <script>
angular.module("myApp",[])
.controller("myController",function($scope,$timeout){
$timeout(function(){
$scope.myHref = 'http://www.baidu.com';
},2000)
})
</script>
</body>

ng-src

同a链接的href是一个道理,ng-src在数据还没有过来的时候是不会加载图片的,src在数据没有加载过来的时候会报错

ng-class   ng-class-odd       ng-class-even

根据表达式条件返回的布尔值添加对应的class名。可以添加多个class,每个用逗号隔开ng-class-odd ng-class-even 表示奇数行和偶数行的样式

<!DOCTYPE html>
<html ng-app="myApp">
<head lang="en">
<meta charset="UTF-8">
<title></title>
<script src="../../Angular/angular.min.js"></script>
<style>
.classRed{
background:red;
}
.classGreen{
background:green;
}
</style>
</head>
<body>
<div>
<!-- 条件返回true 表示添加 条件返回false表示不添加。可以添加多个表达式来判断添加某个class样式-->
<p ng-class="{classRed:1+1 == 3,classGreen:1+1 ==2}">ddd</p>
</div>
<div ng-controller="myController">
<!-- 还可以指定奇数和偶数行的样式,注意引号的写法-->
<ul>
<li ng-repeat="v in arr" ng-class-even="'classRed'" ng-class-odd="'classGreen'">{{v}}</li>
</ul>
</div>
<script>
angular.module("myApp",[])
.controller("myController",function($scope){
$scope.arr = [1,2,3,4,5,6,7,8,9,0];
});
</script>
</body>
</html>

ng-style

使用angular添加样式,以 key:value 的形式

<body>
<!--以键值对的形式给元素指定样式-->
<div ng-controller="myController">
<p ng-style="objCss"></p>
</div>
<script>
angular.module("myApp",[])
.controller("myController",function($scope){
$scope.objCss = {
width:'200px',
height:'200px',
background:'red'
}
})
</script>
</body>