发表于: 2017-06-11 21:43:07
1 962
今天完成的事情:
1.完成任务8的收尾工作:
昨晚加班把自定义指令进行了修改,刷新后页面不会跳转到首页;
// prevPage
scope.prevPage = function() {
if(conf.currentPage > 1){
conf.currentPage -= 1;
}
getPagination();
$state.params.page = conf.currentPage;
scope.page = $state.params.page;
$state.go('.',{page:scope.page});
};
// nextPage
scope.nextPage = function() {
if(conf.currentPage < conf.numberOfPages){
conf.currentPage += 1;
}
getPagination();
$state.params.page = conf.currentPage;
scope.page = $state.params.page;
$state.go('.',{page:scope.page});
};
// 变更当前页
scope.changeCurrentPage = function(item) {
if(item === '···'){
return;
}else{
conf.currentPage = item;
getPagination();
$state.params.page = conf.currentPage;
scope.page = $state.params.page;
$state.go('.',{page:scope.page});
}
};
// 修改每页展示的条数
/*scope.changeItemsPerPage = function() {
// 一旦展示条数变更,当前页将重置为1
conf.currentPage = 1;
getPagination();
/!*$state.params.size = scope.conf.itemsPerPage;
scope.size = $state.params.size;
$state.params.page = conf.currentPage;*!/
scope.page = $state.params.page;
$state.go('.',{page:scope.page, size:scope.conf.itemsPerPage});
};*/
// 跳转页
scope.jumpToPage = function() {
num = scope.jumpPageNum;
if(num) {
num = parseInt(num, 10);
if(num && num !== conf.currentPage) {
if(num > conf.numberOfPages) {
num = conf.numberOfPages;
}
// 跳转
conf.currentPage = num;
getPagination();
scope.jumpPageNum = '';
$state.params.page = conf.currentPage;
scope.page = $state.params.page;
$state.go('.',{page:scope.page, size:scope.conf.itemsPerPage});
}
}
else if(!num && scope.conf.itemsPerPage !== $state.params.size) {
conf.currentPage = 1;
getPagination();
$state.params.page = conf.currentPage;
scope.page = $state.params.page;
$state.go('.',{page:scope.page, size:scope.conf.itemsPerPage});
}
};
scope.$watch('conf.totalItems', function() {
getPagination();
});
2.把下拉菜单的选项用constant写成一个自定义过滤器(借鉴王蒙师兄的写法):
myApp.filter("optionsFilter", function(Type, Status, Handle) {
return function(index, optionsFilterAim) {
if(index !== "" && index !== undefined) {
switch(optionsFilterAim) {
case "type":
return Type[index];
break;
case "status":
return Status[index];
break;
case "handle":
return Handle[index];
break;
default:
console.log("filter param error!");
}
}
}
})
.constant("Type", {
"": "全部",
0: "首页Banner",
1: "找职位Banner",
2: "找精英Banner",
3: "行业大图"
})
.constant("Status", {
"": "全部",
1: "草稿",
2: "上线"
})
.constant('Industry', {
0: "移动互联网",
1: "电子商务",
2: "企业服务",
3: "O2O",
4: "教育",
5: "金融",
6: "游戏"
})
.constant("Handle", {
1: "上线",
2: "下线"
});
3.学习了FormData 对象的使用
通过FormData对象可以组装一组用 XMLHttpRequest发送请求的键/值对。它可以更灵活方便的发送表单数据,因为可以独立于表单使用。如果你把表单的编码类型设置为multipart/form-data ,则通过FormData传输的数据格式和表单通过submit() 方法传输的数据格式相同。
如何创建一个FormData对象
你可以自己创建一个FormData对象,然后通过调用它的append()方法添加字段,就像这样:
var formData = new FormData();
formData.append("username", "Groucho");
formData.append("accountnum", 123456); // 数字 123456 会被立即转换成字符串 "123456"
// HTML 文件类型input,由用户选择
formData.append("userfile", fileInputElement.files[0]);
// JavaScript file-like 对象
var content = '<a id="a"><b id="b">hey!</b></a>'; // 新文件的正文...
var blob = new Blob([content], { type: "text/xml"});
formData.append("webmasterfile", blob);
var request = new XMLHttpRequest();
request.open("POST", "http://foo.com/submitform.php");
request.send(formData);
发送请求:
var form = document.forms.namedItem("fileinfo");
form.addEventListener('submit', function(ev) {
var oOutput = document.querySelector("div"),
oData = new FormData(form);
oData.append("CustomField", "This is some extra data");
var oReq = new XMLHttpRequest();
oReq.open("POST", "stash.php", true);
oReq.onload = function(oEvent) {
if (oReq.status == 200) {
oOutput.innerHTML = "Uploaded!";
} else {
oOutput.innerHTML = "Error " + oReq.status + " occurred when trying to upload your file.<br \/>";
}
};
oReq.send(oData);
ev.preventDefault();
}, false);
4.学习了洗髓换骨的数据结构。线性表有队列、栈等等,非线性表有树状的、图状的。
明天计划的事情:
继续任务9的编写
遇到的问题:
暂无
收获:
state.go传参和formdata的知识
评论