0
点赞
收藏
分享

微信扫一扫

angular


http://www.iteye.com/news/28651-AngularJS-Google-resource



<!DOCTYPE html> 

<html> 

<head> 

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 

 <title>Angular</title> 

 <script src="resources/js/angular.min.js"></script> 

 <script type="text/javascript"> 

 (function () { 

 //申明Module 

 var mainModule = angular.module("MainApp", []); 

 //创建Order的增删改查Angular服务 

 mainModule.service("Order", ["$rootScope", "$http", function ($rootScope, $http) { 

 //page:当前页码 

 //filter:查询条件 

 var service = { orders: [], page: 1, filter: "" }; 

 //根据页码,查询条件,拿到当前的Orders集合 

 service.getOrders = function () { 

 //OData可以通过odata/Orders?$skip=分页跳过的记录数&$filter=查询条件 

 //通过这样的GET请求,可以拿到当前查询条件下的第几页数据 

 $http.get("odata/Orders?$skip=" + ((this.page - 1) * 3).toString() + this.filter) 

 .success(function (data, status, headers, config) { 

 service.orders = data.value; 

 //setvice.nextLink = data["@odata.nextLink"]; 

 $rootScope.$broadcast('orders.update'); 

 }) 

 .error(function (data, status, headers, config) { }); 

 }; 

 //增加Order,传入Order对象Post到odata/Orders 

 service.addOrder = function (order) { 

 $http.post("odata/Orders", order) 

 .success(function (data, status, headers, config) { 

 service.orders.push(data); 

 }) 

 .error(function (data, status, headers, config) { }); 

 }; 

 //删除Order,用Delete请求odata/Orders(id) 

 service.deleteOrder = function (id) { 

 $http.delete("odata/Orders(" + id + ")") 

 .success(function (data, status, headers, config) { 

 service.getOrders(); 

 }) 

 .error(function (data, status, headers, config) { }); 

 }; 

 //修改一个Order,用PUT请求odata/Orders(id),传入修改后的Order 

 service.putOrder = function (order) { 

 $http.put("odata/Orders(" + order.Id + ")", order) 

 .success(function (data, status, headers, config) { 

 service.getOrders(); 

 }) 

 .error(function (data, status, headers, config) { }); 

 }; 

 return service; 

 }]); 

 //申明Order Controller,注入Order服务 

 mainModule.controller("orderList", ["$scope", "Order", function ($scope, Order) { 

 $scope.$on("orders.update", function (event) { 

 $scope.orders = Order.orders; 

 }) 

 //增加的order对象 

 $scope.order = {}; 

 //修改的order对象 

 $scope.uOrder = {}; 

 //对列表进行查询的对象 

 $scope.whereOrder = {}; 

 //上一页 

 $scope.goBefore = function () { 

 if (Order.page > 1) { 

 Order.page -= 1; 

 Order.filter = $scope.getFilterString(); 

 Order.getOrders(); 

 } 

 } 

 //下一页 

 $scope.goNext = function () { 

 Order.page += 1; 

 Order.filter = $scope.getFilterString(); 

 Order.getOrders(); 

 } 

 //得到根据查询条件拿到Order 

 $scope.getOrders = function () { 

 Order.filter = $scope.getFilterString(); 

 Order.getOrders(); 

 } 

 //生成查询条件字符串 

 $scope.getFilterString = function () { 

 var filterString = "&$filter="; 

 var filterArray = []; 

 if ($scope.whereOrder.No != undefined && $scope.whereOrder.No!="") filterArray.push("No eq '" + $scope.whereOrder.No + "'"); 

 if ($scope.whereOrder.geTotal != undefined && $scope.whereOrder.geTotal.toString() != "") filterArray.push("Total ge " + $scope.whereOrder.geTotal); 

 if ($scope.whereOrder.leTotal != undefined && $scope.whereOrder.leTotal.toString() != "") filterArray.push("Total le " + $scope.whereOrder.leTotal); 

 filterString += filterArray.join(" and "); 

 if (filterString == "&$filter=") filterString = ""; 

 console.log(filterString); 

 return filterString; 

 } 

 //增加Order,调用上面的Order Service 

 $scope.addOrder = function () { 

 Order.addOrder($scope.order); 

 } 

 //删除order,调用上面的Order Service 

 $scope.deleteOrder = function (id) { 

 Order.deleteOrder(id); 

 } 

 //修改order 

 $scope.editOrder = function (order) { 

 $scope.uOrder = order; 

 } 

 //把修改的Order更新到服务器,调用上面的Order Service 

 $scope.putOrder = function () { 

 Order.putOrder($scope.uOrder) 

 } 

 Order.getOrders(); 

 $scope.page = Order.page; 

 $scope.orders = Order.orders; 

 }]); 

 })(); 

 </script> 

</head> 

<body ng-app="MainApp"> 

 <div ng-controller="orderList"> 

 <fieldset> 

 <legend>List Orders</legend> 

 <div> 

 <span>查询条件</span><br /> 

 No:<input type="text" ng-model="whereOrder.No" /><br /> 

 Total:<input type="number" ng-model="whereOrder.geTotal" /> 

 <input type="number" ng-model="whereOrder.leTotal" /><br /> 

 <input type="button" value="Search" ng-click="getOrders()" /> 

 </div> 

 <table border="1"> 

 <thead> 

 <tr> 

 <th>ID</th> 

 <th>No</th> 

 <th>Total</th> 

 <th>Date</th> 

 <th colspan="2">Action</th> 

 </tr> 

 </thead> 

 <tbody> 

 <tr ng-repeat="item in orders"> 

 <td>{{item.Id}}</td> 

 <td>{{item.No}}</td> 

 <td>{{item.Total}}</td> 

 <td>{{item.Date | date : 'yyyy-MM-dd'}}</td> 

 <td><a href="#nogo" ng-click="editOrder(item)">Edit</a></td> 

 <td><a href="#nogo" ng-click="deleteOrder(item.Id)">Delete</a></td> 

 </tr> 

 </tbody> 

 </table> 

 <div> 

 <input type="button" ng-click="goBefore()" value="上一页" /> 

 <input type="button" ng-disabled="orders.length<3" ng-click="goNext()" value="下一页" /> 

 </div> 

 </fieldset> 

 <fieldset> 

 <legend>Add Order</legend> 

 <div> 

 <span>No:</span><input type="text" ng-model="order.No" /><br /> 

 <span>Total:</span><input type="number" ng-model="order.Total" /><br /> 

 <span>Date:</span><input type="date" ng-model="order.Date" /><br /> 

 <input type="button" ng-click="addOrder()" value="Add Order" /> 

 </div> 

 </fieldset> 

 <fieldset> 

 <legend>Update Order</legend> 

 <div> 

 <input type="hidden" ng-model="uOrder.Id" /> 

 <span>No:</span><input type="text" ng-model="uOrder.No" /><br /> 

 <span>Total:</span><input type="number" ng-model="uOrder.Total" /><br /> 

 <span>Date:</span><input type="date" ng-model="uOrder.Date" /><br /> 

 <input type="button" ng-click="putOrder()" value="Update Order" /> 

 </div> 

 </fieldset> 

 </div> 

</body> 

</html>




1)首先是html页面的编写:

<!doctype html> 


<html ng-app="myModule"> 

<head> 

<meta charset="utf-8"> 

<title>学生信息管理</title> 


//需要用到的一些库,要加载的 

<script src="bower_components/angular/angular.js"></script> 

<script src="bower_components/ng-table/dist/ng-table.js"></script> 

<script src="bower_components/ng-table-export/ng-table-export.js"></script> 

<link rel="stylesheet" type="text/css" href="bower_components/ng-table/dist/ng-table.css"/> 

<link rel="stylesheet" type="text/css" href="bower_components/bootstrap-3.3.2-dist/css/bootstrap.min.css"/> 

<link rel="stylesheet" type="text/css" href="module/styles/form.css"> 

<script src="module/scripts/controllers/Form.js"></script> 

</head> 

<body> 

<div ui-view></div> 

<div ng-controller="FormController"> 

<h3>学生信息列表</h3> 

<br> 

<div> 

搜索:<input type="text" ng-model="titleFilter" placeholder="输入关键字"> //加上<tr ng-repeat="student in students|filter:titleFilter">实现了表格内容的检索。 

</div> 

<br> 

<table ng-table="tableParams" class="table table-bordered"> 

<tr ng-repeat="student in students|filter:titleFilter"> //遍历每一个对象 

<td title="'Name""> 

<span ng-if="!student.$edit">{{student.Name}}</span> 

<div ng-if="student.$edit"><input class="form-control" type="text" ng-model="student.Name"></div> 

</td> 

<td title="'Id""> 

<span ng-if="!student.$edit">{{student.Id}}</span> 

<div ng-if="student.$edit"><input class="form-control" type="text" ng-model="student.Id"></div> 

</td> 

<td title="'Grade""> 

<span ng-if="!student.$edit">{{student.Grade}}</span> 

<div ng-if="student.$edit"><input class="form-control" type="text" ng-model="student.Grade"></div> 

</td> 

<td title="'Actions"" width="200"> 

<a href="" ng-if="!student.$edit" class="btn btn-default btn-xs" ng-click="student.$edit=true">Edit</a> 

<a href="" ng-if="student.$edit" class="btn btn-default btn-xs" ng-click="student.$edit=false">Save</a> 

<a ng-click="deleteStudent(obj)" ng-if="student.$edit" class="btn btn-default btn-xs" >Delete</a> 

<!-- <a href="" ng-click="addStudent()" ng-if="student.$edit" class="btn btn-default btn-xs">Add</a> --> 

</td> 

</tr> 

</table> 

<div> 

<input type="text" ng-model="newName" placeholder="input Name" required/> 

<input type="text" ng-model="newId" placeholder="input Id" required/> 

<input type="text" ng-model="newGrade" placeholder="input Grade" required/> 

<input type="button" ng-click="addStudent()" value="Add" class="btn"/> 

</div> 

</div> 

</body> 

</html>


(2)JS代码部分:

var myModule=angular.module('myModule',['ngTable']). 

controller('FormController',function($scope,ngTableParams,$sce){ 

$scope.students=[ 

{Name:'小李',Id:'201401201',Grade:'计算机技术'}, 

{Name:'李磊',Id:'201401202',Grade:'计算机技术'}, 

{Name:'夏津',Id:'201401203',Grade:'计算机技术'}, 

{Name:'杭州',Id:'201401204',Grade:'计算机技术'} 

]; 

$scope.addStudent=function(){ //添加学生函数 

$scope.students.push({Name:$scope.newName,Id:$scope.newId,Grade:$scope.newGrade}); 

$scope.newName=''; 

$scope.newId=''; 

$scope.newGrade=''; 

}; 

$scope.deleteStudent=function(student){ //删除一行的内容 

$scope.students.splice($scope.students.indexOf(student),1); 

}; 

});



(3)测试发现上面的方法删除的都是最后一行的内容,接下来改动一点使得可以删除选定行,并且对其加以序列号:

deleteStudent()函数: 


  $scope.deleteStudent=function(index){ //删除选中的一行 

$scope.students.splice(index,1); 

};



在HTML页面中也需要改动一点:<a ng-click="deleteStudent($index)" ng-if="student.$edit" class="btn btn-default btn-xs" >Delete</a>

即在deleteStudent()中传入当前行的索引index。


http://damoqiongqiu.iteye.com/blog/1920993
http://www.angularjs.cn/A175
http://www.grobmeier.de/angular-js-ng-select-and-ng-options-21112012.html

https://angular.io/download/

举报

相关推荐

0 条评论