Angular多選、全選、批量選擇操作實(shí)例代碼
在前臺開發(fā)過程中,列表批量選擇是一個開發(fā)人員經(jīng)常遇到的功能,列表批量選擇的實(shí)現(xiàn)方式很多,但是原理基本相同,本文主要來講AngularJs如何簡單的實(shí)現(xiàn)列表批量選擇功能。
首先來看html代碼
<table cellpadding="0" cellspacing="0" border="0" class="datatable table table-hover dataTable">
<thead>
<tr>
<th><input type="checkbox" ng-click="selectAll($event)" ng-checked="isSelectedAll()"/></th>
<th>姓名</th>
<th>單位</th>
<th>電話</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="item in content">
<td><input type="checkbox" name="selected" ng-checked="isSelected(item.id)" ng-click="updateSelection($event,item.id)"/></td>
<td>{{item.baseInfo.name}}</td>
<td>{{item.orgCompanyName}}</td>
<td>{{item.baseInfo.mobileNumberList[0].value}}</td>
</tr>
</tbody>
</table>
html里面簡單建立一個表格,與批量選擇相關(guān)的只有兩處。
一處是第3行 ng-click="selectAll($event)" ,用來做全選的操作; ng-checked="isSelectedAll() 用來判斷當(dāng)前列表內(nèi)容是否被全選。
一處是第12行 ng-click="updateSelection($event,item.id) ,用來對某一列數(shù)據(jù)進(jìn)行選擇操作; ng-checked="isSelected(item.id) 用來判斷當(dāng)前列數(shù)據(jù)是否被選中。
然后需要在與該頁面相對應(yīng)的controller中實(shí)現(xiàn)與批量選擇相關(guān)的方法
//創(chuàng)建變量用來保存選中結(jié)果
$scope.selected = [];
var updateSelected = function (action, id) {
if (action == 'add' && $scope.selected.indexOf(id) == -1) $scope.selected.push(id);
if (action == 'remove' && $scope.selected.indexOf(id) != -1) $scope.selected.splice($scope.selected.indexOf(id), 1);
};
//更新某一列數(shù)據(jù)的選擇
$scope.updateSelection = function ($event, id) {
var checkbox = $event.target;
var action = (checkbox.checked ? 'add' : 'remove');
updateSelected(action, id);
};
//全選操作
$scope.selectAll = function ($event) {
var checkbox = $event.target;
var action = (checkbox.checked ? 'add' : 'remove');
for (var i = 0; i < $scope.content.length; i++) {
var contact = $scope.content[i];
updateSelected(action, contact.id);
}
};
$scope.isSelected = function (id) {
return $scope.selected.indexOf(id) >= 0;
};
$scope.isSelectedAll = function () {
return $scope.selected.length === $scope.content.length;
};
controller中主要是對html中用到的幾個方法的實(shí)現(xiàn),相對來講實(shí)現(xiàn)代碼還是比較簡潔易懂的。
多選效果展示如下

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Angular2從搭建環(huán)境到開發(fā)步驟詳解
本文的內(nèi)容主要是想幫助那些想學(xué)習(xí)Angular2的朋友們,因為我自己在玩Angular2時碰到了不少坑,而且Angular2語法一直處于變化中,讓人很頭疼。不過也怪不了Anguar2,因為它現(xiàn)在是處于并長期處于alpha階段,下面就通過本文來學(xué)習(xí)Angular2的搭建環(huán)境和開發(fā)吧。2016-10-10
詳解從angular-cli:1.0.0-beta.28.3升級到@angular/cli:1.0.0
本篇文章主要介紹了詳解從angular-cli:1.0.0-beta.28.3升級到@angular/cli:1.0.0,具有一定的參考價值,有興趣的可以了解一下2017-05-05
基于AngularJS實(shí)現(xiàn)表單驗證功能
這篇文章主要為大家詳細(xì)介紹了基于AngularJS實(shí)現(xiàn)表單驗證功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-07-07
AngularJS基礎(chǔ) ng-keypress 指令簡單示例
本文主要介紹AngularJS ng-keypress 指令,這里對ng-keypress指令的基礎(chǔ)資料整理,并附有實(shí)例代碼,需要的小伙伴參考下2016-08-08
解決ng-repeat產(chǎn)生的ng-model中取不到值的問題
今天小編就為大家分享一篇解決ng-repeat產(chǎn)生的ng-model中取不到值的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-10-10

