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}};