迴圈輸出資料行表很多項目在web服務端做,前端做好模版後後端寫jsp代碼,雙方需要緊密合作,分清責任。有些項目由後端提供restful方法,前端用ajax調用自己迴圈,這種一般是大把的jquery拼字串,太不直觀,有人搞出了js模板,也沒好到哪裡去。
用AngularJS就爽多了,文法和JSP類似:
<!doctype html><html ng-app><head> <meta charset="utf-8"> <title>ng-repeat directive</title></head><body><table ng-controller="CartController"> <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 src="../lib/angularjs/1.2.26/angular.min.js"></script><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} ]; $scope.remove = function (index) { $scope.items.splice(index, 1); } }</script></body></html>
ng-repeat指令生命在需要迴圈內容的元素上,items和控制器上的變數名對應,item是為數組中單個對象起的別名。$index可以返回當前引用對象的序號,從0開始,另外還有$first、$middle、$last可以返回布爾值,用於告訴你當前元素是否是集合中的第一個中間的最後一個元素。