发表于: 2017-05-13 20:43:03
1 899
今天完成的事情
1.自己把自己js 8-10的代码又重新修改了一遍
明天的计划
1.复盘项目的方案
2.接着修改自己之前的代码
遇到的问题
1.基本重新写了js10的js代码,修改了很多东西
a.原来我是把所有都写在了controller里面,现在我精简了controller,把数据和数据的操作,http请求都写在了服务里面
//计算总页数
service.totalPage = function (_total,_mySize) {
if(_total % _mySize == 0) {
return _totalPage = Math.floor(_total / _mySize);
} else {
return _totalPage=Math.floor(_total / _mySize)+1;
}
}
//页数的数组
service.paging = function (_totalPage) {
for (i = 0; i < _totalPage; i++) {
_Page[i] = i + 1;
}
return _Page;
};
//GET加载页面
service.defaultLoad = function (params) {
var defered = $q.defer();
$http({
method:'GET',
url:'/carrots-admin-ajax/a/article/search',
params:params
})
.then(function (response) {
defered.resolve(response.data);
})
return defered.promise;
}
//DELETE 删除功能
service.deleteArticle = function(id) {
var defered = $q.defer();
$http({
method:'DELETE',
url:'/carrots-admin-ajax/a/u/article/'+id
})
.then(function (response) {
defered.resolve(response.data);
})
return defered.promise;
}
//操作上下线
service.upAndDown = function (status,id) {
var defered = $q.defer();
$http({
method:'PUT',
url:'/carrots-admin-ajax/a/u/article/status',
params: {
'id':id,
'status':status
},
headers:{
'Content-Type': 'application/x-www-form-urlencoded'
}
})
.then(function (response) {
defered.resolve(response.data);
})
return defered.promise;
}
在控制器里面只需要一段代码就可以
//进入页面加载
myService.defaultLoad($scope.params).then(function(res){
$scope.mySize = res.data.size;
$scope.items = res.data.articleList;
$scope.total = res.data.total;
$scope.totalPage = myService.totalPage($scope.total,$scope.mySize);
$scope.pageArry = myService.paging($scope.totalPage);
$scope.lastPage = $scope.pageArry.length;
})
之前我写的代码里面,是用cookie来存储数据,达到搜索之后,刷新页面不会改变搜索的结果,但是需要保存的东西太多,代码看起来很乱,而且一些退出的地方,需要清空cookie,导致整体非常的乱,这次我该用url传参的方式来处理这些数据,
.state("PageTab.Page2", {
url: "/Page2?page&size&type&status&startAt&endAt",
templateUrl: "companyMSG.html"
})
参数都写在url上,在修改的时候,只要用$state.go来把数据传进去,刷新页面之后,用$state.params方法获取,然后传给http中的params中,就可以直接加载,无须存储cookie,也不用原来的判断页面是否有cookie,减少了代码量,代码 看起来比原来的更加简洁
例如搜索页面的操作
$state.go(
$state.current,
{
page:1,
size:$scope.mySize,
status : $scope.searchStatus.id,
type : $scope.searchType.id,
startAt : $scope.timeStart ,
endAt : $scope.timeFinish ,
},
{reload: true})
还有原来的分页那里,我是写了三个函数,分别是跳到首页,跳到尾页,到指定某页,重复代码特别多,现在精简成为一个函数pageGo
传一个参数进去,这个参数根据不同的按钮传不同的,但是传到内部都是一个作用就是更改page的数值
$scope.pageGo = function pageGO(item) {
if(item > $scope.lastPage ) {
alert('此页不存在');
} else {
$state.go($state.current, {page: item, size: $scope.mySize}, {reload: true})
}
}
尝试把自己之前写的图片上传的指令插入到任务中了,发现css样式有点冲突,修改了样式之后还蛮好用的
收获
加深了对于angular的理解,以及各个模块的理解
评论