发表于: 2017-07-16 22:52:47
1 828
今天完成的事情:
职位搜索页:
'use strict';
angular.module("app")
.controller("searchJobListPerson", ['$scope', '$state', 'httpService', 'logicService', 'searchPanel', 'searchUtil', searchJobListPerson]);
function searchJobListPerson($scope, $state, httpService, logicService, searchPanel, searchUtil) {
var vm = this;
vm.params = $state.params;
var searchPanelCopy = angular.copy(searchPanel);
// 读取本地数据
vm.option = logicService.judgeStorage(sessionStorage.jobOptions, searchPanelCopy);
// 初始化
vm.paginationConf = {
pagesLength: 7
};
vm.params.page = vm.params.page? vm.params.page : 1;
// 选中从其他页面传来的二级类目信息
if($state.params.type) {
vm.option.category[0].choose = false;
vm.option.category[parseInt($state.params.type)].choose = true;
}
vm.selectSubCategoryFn = function (index) {
// 判断需要展开详情的类目
vm.showCategoryNum = logicService.judgeShowCategoryDetail(vm.option.category);
// 展开三级类目
if(index > 0 && vm.showCategoryNum > 0) {
vm.option.subCategory = searchPanelCopy.subCategory[vm.showCategoryNum - 1].data;
}
// 清除三级类目数据
else if(index === 0 || vm.showCategoryNum === 0) {
vm.option.subCategory = [];
}
};
// 选中从其他页面传来的三级类目信息
if ($state.params.subType && vm.option.subCategory.length > 0) {
vm.option.subCategory[0].choose = false;
vm.option.subCategory[parseInt($state.params.subType)].choose = true;
}
vm.selectSubCategoryFn(parseInt($state.params.type) + 1);
// 选中的数据
vm.data = searchUtil.dataConvert(vm.option);
// 存入本地
sessionStorage.jobOptions = JSON.stringify(vm.option);
// 数据组装
vm.data.name = vm.params.name;
vm.data.page = vm.params.page;
vm.data.size = 10;
// 标签单选
vm.radioType = searchUtil.radioType;
// 搜索
vm.search = function() {
sessionStorage.jobOptions = JSON.stringify(vm.option);
$state.go('.', {page: 1, size: 10, name: vm.data.name, type: null, subType: null}, {reload: true});
};
// 清空
vm.clear = function() {
sessionStorage.removeItem("jobOptions");
sessionStorage.jobOptions = JSON.stringify(searchPanelCopy);
$state.go('.', {page: 1, size: 10, name: null, type: null, subType: null}, {reload: true});
};
// 获取职位列表
httpService.getSearchJob('', vm.data)
.then(function(res) {
if(res.data.code === 0) {
vm.plainJobList = res.data.data;
vm.paginationConf.totalItems = res.data.total;
}
else {
alert(res.data.message);
}
// 404页面
if(res.data.code < 0 || vm.plainJobList.length === 0) {
httpService.getSearchJob('', 3)
.then(function(response) {
vm.eliteJob = response.data.data;
});
}
});
}
这里的话有一个困扰了我两天的bug,就是$state.go传参的时候,传入值不为空的时候,可以正常获取列表,但是如果输入框删除之前的值进行传参的时候,$state.params.name却无法更新,也就是无法清空,然后今天杨泽平帮我折腾半小时后,来了句换ui-router的版本,然后就解决了,以后凡是遇见不正常的bug,第一件事就是换版本。
然后另外一个bug就是做高亮的时候,我直接使用{className: $state.includes('xxx')},却不生效,然后查找资料才知道,必须在控制器里声明$rootScope.$state = $state,才能判断出url的值,然后我照做了,还是不生效,看了下官网,important大法!加上去ok生效了。
明天计划的事情:
开始公司详情页编写
遇到的问题:
已解决
收获:
解决bug的经验以及$state.includes使用时应该注意的地方
评论