AngularJS實現全選反選功能_AngularJS

來源:互聯網
上載者:User

AngularJS是為了克服HTML在構建應用上的不足而設計的。HTML是一門很好的為靜態文本展示設計的聲明式語言,但要構建WEB應用的話它就顯得乏力了。所以我做了一些工作(你也可以覺得是小花招)來讓瀏覽器做我想要的事。

這裡用到AngularJS四大特性之二----雙向資料繫結

注意:沒寫一行DOM代碼!這就是ng的優點,bootstrap.css為了布局,JS代碼也只是簡單建立ng模組和ng控制器

效果:

<!DOCTYPE html><html lang="en" ng-app="myModule5"><!--3、ng-app="myModule5"啟動ng並調用模組--><head><meta charset="UTF-8"><link rel="stylesheet" href="css/bootstrap.css"><title>全選/取消全選</title></head><body><div class="container" ng-controller="myCtrl5"><!--4、ng-controller="myCtrl5"啟用控制器--><h2>全選和取消全選</h2><table class="table table-bordered"><thead><tr><th>選擇</th><th>姓名</th><th>操作</th></tr></thead><tbody><tr><td><input ng-checked="selectAll" type="checkbox"></td><td>Tom</td><td><button class="btn btn-danger btn-xs">刪除</button></td></tr><tr><td><input ng-checked="selectAll" type="checkbox"></td><td>Mary</td><td><button class="btn btn-danger btn-xs">刪除</button></td></tr><tr><td><input ng-checked="selectAll" type="checkbox"></td><td>King</td><td><button class="btn btn-danger btn-xs">刪除</button></td></tr></tbody></table><input type="checkbox" ng-model="selectAll"><span ng-hide="selectAll">全選</span><span ng-show="selectAll">取消全選</span></div><script src="js/angular.js"></script><!--1、引入angularJS--><script>//2、建立自訂模組和控制器angular.module('myModule5', ['ng']).controller('myCtrl5', function($scope){});</script></body></html>

ps:AngularJs 簡單實現全選,多選操作

很多時候我們在處理CURD(增刪改查)的時候需要實現大量操作資料,這時候就必須使用多選操作。

Angular 中實現如下(當然還有很多種比筆者寫的更好的方法,這裡只是簡單的實現。)

HTML:

<section><pre>{{choseArr}}</pre>全選: <input type="checkbox" ng-model="master" ng-click="all(master,tesarry)"><div ng-repeat="z in tesarry"><input id={{z}} type="checkbox" ng-model="x" ng-checked="master" ng-click="chk(z,x)">{{z}}</div><a href="#" class="btn btn-danger" ng-click="delete()" > 刪除</a></section>

頁面效果如下:(CSS採用bootstrap) 

JS代碼:

$scope.tesarry=[‘1‘,‘2‘,‘3‘,‘4‘,‘5‘];//初始化資料$scope.choseArr=[];//定義數組用於存放最上層顯示var str="";//var flag=‘‘;//是否點擊了全選,是為a$scope.x=false;//預設未選中$scope.all= function (c,v) {//全選if(c==true){$scope.x=true;$scope.choseArr=v;}else{$scope.x=false;$scope.choseArr=[""];}flag=‘a‘;};$scope.chk= function (z,x) {//單選或者多選if(flag==‘a‘) {//在全選的基礎上操作str = $scope.choseArr.join(‘,‘) + ‘,‘;}if (x == true) {//選中str = str + z + ‘,‘;} else {str = str.replace(z + ‘,‘, ‘‘);//取消選中}$scope.choseArr=(str.substr(0,str.length-1)).split(‘,‘);};$scope.delete= function () {// 操作CURDif($scope.choseArr[0]==""||$scope.choseArr.length==0){//沒有選擇一個的時候提示alert("請至少選中一條資料在操作!")return;};for(var i=0;i<$scope.choseArr.length;i++){//alert($scope.choseArr[i]);console.log($scope.choseArr[i]);//遍曆選中的id}};

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.