当前位置: 首页 > 工具软件 > Bindable.js > 使用案例 >

Angular.js(三)

索锐藻
2023-12-01

ng-repeat:通过 in 的方式遍历数组中的每一项

将数组中的数据写到表格中

	<script>
		var m1 = angular.module('myApp',[]);
		m1.controller('A',['$scope','$filter',function($scope,$filter){
			$scope.dataList = [
				{'name':'yellow','age':25,'sex':'女'},			
				{'name':'red','age':17,'sex':'男'},			
				{'name':'blue','age':19,'sex':'男'},			
				{'name':'pink','age':29,'sex':'女'},			
				{'name':'block','age':32,'sex':'男'},			
				{'name':'green','age':41,'sex':'女'}			
			];
			$scope.arr = $scope.dataList;
			$scope.po = function(arg){
				arguments.callee['po' + arg] = !arguments.callee['po'+arg];  //点击时,进行排序
				$scope.arr = $filter('orderBy')($scope.arr,arg,arguments.callee['po' + arg])
			}
			$scope.fn = function(){
				$scope.arr = $filter('filter')($scope.dataList,$scope.val);
			}
		}])
	</script>
<div ng-controller = 'A'>
	<input type="text" ng-model = 'val'><input type="button" value="搜索" ng-click = 'fn()'>
	<table>
		<tr>
			<th ng-click = 'po("name")'>姓名:</th>
			<th ng-click = 'po("age")'>年龄:</th>
			<th ng-click = 'po("sex")'>性别:</th>
		</tr>
		<tr ng-repeat = 'data in arr'>
			<td>{{ data.name }}</td>
			<td>{{ data.age }}</td>
			<td>{{ data.sex }}</td>
		</tr>
	</table>
</div>
ng-repeat扩展:

$index 显示数据的索引,

$first 只有第一个数据显示true,其他数据显示false     $last只有最后的数据显示true,其他数据显示false    $middle除了第一个数据和最后一个数据显示false,中间的数据显示true  

$even只有奇数行的数据显示true,其他数据显示false   $odd只有偶数行的数据显示true,其他数据显示false

<div ng-controller="A">
	<ul>
		<li ng-repeat='data in dataList'>{{ $index / $first / $last / $middle / even / odd}}</li>
	</ul>
</div>
ng-repeat扩展案例:让 li 的偶数行数据加上 active类  奇数行加上 active2类

<ul>
	<li class="{{ $odd ? 'active' : 'active2'}}" ng-repeat='data in dataList'>{{ data }}</li>
</ul>

对于兄弟节点时,可以采用 ng-repeat-strat 和 ng-repeat-end 

<div ng-repeat-start = 'data in dataList'>{{data}}</div>
<div>{{data}}</div>
<div ng-repeat-end>{{data}}</div>

事件指令

ng-click / dblclick  :单击 / 双击

ng-mousedown / up :鼠标按下事件 / 鼠标抬起事件

ng-mouseenter / leave :鼠标移入事件 / 鼠标移出时间

ng-mousemove / over / out :鼠标移动事件 / 鼠标经过事件 / 鼠标移出事件

ng-keydown / up /press :键盘按下事件 / 键盘抬起事件 / 按下按键时事件

ng-focus / blur :焦点事件 / 失去焦点事件

ng-submit:表单提交

ng-selected :当下拉菜单被选中时触发的事件     当CheckBox被选中时,select显示就是333333

	<input type="checkbox" ng-model = 'aaa'>
	<select>
		<option>111111</option>
		<option>222222</option>
		<option ng-selected = "aaa">333333</option>
		<option>444444</option>
	</select>  

ng-change:输入框的数据发生改变时,触发事件  ng-change 需要和 ng-model 配合使用

<input type="text" ng-change = 'bbb = "hello"' ng-model = "bbb">{{bbb}}

ng-copy:复制(复制的时候触发,下面的剪切和粘贴用法一样)

<input type="text" value = 'sdfjksjfks' ng-copy = 'ccc = true'>{{ccc}}

ng-cut:剪切

ng-paste:粘贴

ng-disabled:input中禁止点击

开启一个定时器,一开始按钮禁止点击,三秒过后可以进行点击,清楚定时器的服务 $interval.cancel(定时器名称)

var m1 = angular.module('myApp',[]);
m1.controller('A',['$scope','$interval',function($scope,$interval){
	var n = 3;
	$scope.text = n + '秒';
	$scope.isDisable = true;    //禁止点击按钮
	var timer = $interval(function(){
		n-- ;
		$scope.text = n + '秒';
		if(n == 0){
			$interval.cancel(timer);
			$scope.text = '允许点击';
			$scope.isDisable = false;
		}
	},1000)
}])
<div ng-controller="A">
	<input type="button" value = '{{ text }}' ng-disabled = 'isDisable'>
</div>
ng-readonly:只针对输入框,按钮是不管用的,同样是禁用,和ng-disabled效果显示不同

ng-checked:选中的状态 

ng-value:输入框的文字,和value用法一样,但是value的用户体验不好,当页面需要的加载的东西过多,value = {{  }},会在页面显示,所以用户的体验不是很好,一般选用 ng-value

ng-bind用法:

<div ng-bind = 'text'></div>   ===  <div>{{ text }}</div>
ng-bind-template用法:

<div ng-bind-template = '{{ text }},{{ text }}'></div>     ===     <div>{{ text }},{{ text }}</div>

ng-bind-html用法:

http://www.bootcdn.cn/angular.js/  模块库

<script src="https://cdn.bootcss.com/angular.js/1.3.0-beta.13/angular-sanitize.min.js"></script>
var m1 = angular.module('myApp',['ngSanitize']);   //引入插件以后,需要和模块相连
		m1.controller('A',['$scope',function($scope){
			$scope.text = '<h1>hello</h1>';
		}])
需要引入的插件,可以去cdn上找相应的文件

<div ng-bind-html = "text"></div>
ng-cloak :解决用户体验不好问题 ,可以和ng-bind达到同样的效果,ng-cloak相当于css,没解析完毕前相当于隐藏,解析完毕后才显示

<div ng-cloak>{{text}}</div>
ng-non-bindable:不让解析

<div ng-non-bindable>{{text}}</div>   在页面上输出的就是 {{ text }},这种情况很少见,几乎不怎么用


 类似资料: