循環輸出列表不少項目在web服務端作,前端作好模版後後端寫jsp代碼,雙方須要緊密合做,分清責任。有些項目由後端提供restful方法,前端用ajax調用本身循環,這種通常是大把的jquery拼字符串,太不直觀,有人搞出了js模板,也沒好到哪裏去。css
用AngularJS就爽多了,語法和JSP相似:html
<!doctype html> <html ng-app> <head> <meta charset="utf-8"> <title>ng-repeat directive</title> @*https://code.angularjs.org/*@ <script src="https://code.angularjs.org/1.2.26/angular.min.js"></script> <style type="text/css"> table.dataintable { margin-top: 10px; border-collapse: collapse; border: 1px solid #aaa; width: 100%; } table.dataintable th { vertical-align: baseline; padding: 5px 15px 5px 6px; background-color: #d5d5d5; border: 1px solid #aaa; text-align: left; } table.dataintable td { vertical-align: text-top; padding: 6px 15px 6px 6px; background-color: #efefef; border: 1px solid #aaa; } table.dataintable pre { width: auto; margin: 0; padding: 0; border: 0; background-color: transparent; } table.dataintable p { margin: 0 0 2px 0; } </style> </head> <body> <table class="dataintable" ng-controller="CartController" style=""> <caption>個人購物車</caption> <tr> <th>序號</th> <th>商品</th> <th>單價</th> <th>數量</th> <th>金額</th> <th>操做</th> </tr> <tr ng-repeat="item in items"> <td>{{$index + 1}}</td> <td>{{item.name}}</td> <td>{{item.price | currency}}</td> <td><input ng-model="item.quantity"></td> <td>{{item.quantity * item.price | currency}}</td> <td> <button ng-click="remove($index)">Remove</button> </td> </tr> </table> <script> function CartController($scope) { $scope.items = [ { name: "雷柏(Rapoo) V500 機械遊戲鍵盤 機械黃軸", quantity: 1, price: 199.00 }, { name: "雷柏(Rapoo) V20 光學遊戲鼠標 黑色烈焰版", quantity: 1, price: 139.00 }, { name: "AngularJS權威教程", quantity: 2, price: 84.20 }, { name: "雷柏(Rapoo) V500 機械遊戲鍵盤 機械黃軸", quantity: 1, price: 199.00 }, { name: "雷柏(Rapoo) V20 光學遊戲鼠標 黑色烈焰版", quantity: 1, price: 139.00 }, { name: "AngularJS權威教程", quantity: 2, price: 84.20 }, { name: "雷柏(Rapoo) V500 機械遊戲鍵盤 機械黃軸", quantity: 1, price: 199.00 }, { name: "雷柏(Rapoo) V20 光學遊戲鼠標 黑色烈焰版", quantity: 1, price: 139.00 }, { name: "AngularJS權威教程", quantity: 2, price: 84.20 }, { name: "雷柏(Rapoo) V500 機械遊戲鍵盤 機械黃軸", quantity: 1, price: 199.00 }, { name: "雷柏(Rapoo) V20 光學遊戲鼠標 黑色烈焰版", quantity: 1, price: 139.00 }, { name: "AngularJS權威教程", quantity: 2, price: 84.20 } ]; $scope.remove = function (index) { $scope.items.splice(index, 1); } } </script> </body> </html>
ng-repeat指令生命在須要循環內容的元素上,items和控制器上的變量名對應,item是爲數組中單個對象起的別名。$index能夠返回當前引用對象的序號,從0開始,另外還有$first、$middle、$last能夠返回布爾值,用於告訴你當前元素是不是集合中的第一個中間的最後一個元素。前端
搞定!jquery