发表于: 2017-07-08 00:04:44
1 1046
一、今天完成的事:
1.熟悉任务7,完成静态页面;
2.提取服务器数据,渲染列表页面;
3.编写过滤器,实现对列表type,status,时间的过滤显示;
4.增加搜索功能,尝试用时间控件完成,熟悉时间戳和默认时间格式的转换;
二、明天的计划:
1.继续任务8,9
三、遇到的问题:
1.对过滤器不太熟悉,需要查资料在写;
2.对时间戳和默认时间的转化不会写,询问师兄后,转换正常;
3.对列表数据显示页数的判断,取到数据正常,但是ng-repeat渲染的时候需要时对象或者数组,将数据转换为数组后,发现还是无法显示对应的页数,查看后没有加$scope导致,还是对$scope和ng-repeat理解不深刻导致;
四、收获:
1、后端获取数据包,然后将数据中列表的内容给数组,之后再根据数据中的内容ng-repeat成列表
先将请求回复的数据赋值给数组:
$scope.article = response.data.data.articleList;
然后在html中,ng-repeat数组中每个对象的对应属性值显示出来:
<tr ng-repeat="x in article">
<td>{{x.id}}</td>
<td>{{x.title}}</td>
<td>{{x.type|typeFilter}}</td>
<td>{{x.createAt|date: "yyyy-MM-dd HH:mm:ss"}}</td>
<td>{{x.updateAt|date: "yyyy-MM-dd HH:mm:ss"}}</td>
<td>{{x.author}}</td>
<td>{{x.status|statusFilter}}</td>
2、列表获取并渲染之后,还需要将获取的type,time,status值过滤为汉字,时间由于服务器回复的是时间戳,需要转换为对应的正常时间格式:
return function (type) {
switch (type) {
case 0:
return "首页Banner";
case 1:
return "找职位Banner";
case 2:
return "找精英Banner";
case 3:
return "行业大图";
}
}
});
myApp.filter('statusFilter', function() {
return function (type) {
switch (type) {
case 1:
return "草稿 ";
case 2:
return "上线";
}
}
});
myApp.filter('btnFilter', function() {
return function (type) {
return (type == 1) ? "上线" : "下线";
3、搜索功能的时候,需要判断时间格式,将input的时间改为时间戳发给服务器,我选择的laydate时间插件,发现跟angular有冲突,无法通过ng-modle绑定,只能用js原生获取input的数据,在转换为时间戳发给服务器;
//用Date.parse()方法,将获取到的时间转化为时间戳
$scope.start = Date.parse(document.getElementById("start").value);
$scope.end = Date.parse(document.getElementById("end").value);
$scope.type = $scope.searchType;
$scope.status = $scope.searchStatus;
注意需要判断input中是否选择了时间,没有的话需要赋值为空;
//if判断是在时间没有选择的时候,将请求时间赋值为空,否则的话发送的是NaN,会导致报错
if(isNaN($scope.start)){
$scope.start= ""
}
if(isNaN($scope.end)){
$scope.end= ""
}
4、如果ng-repeat的对象是个数组的话,直接将数组中的数据显示即可;
<li ng-repeat="x in articlePage"><a href="#">{{x}}</a></li>
注意在angular中创建数组时,需要添加$scope;
$scope.articlePage = [];
for (var i = 1; i < ($scope.articleNum + 1); i++) {
$scope.articlePage[i-1] = i;
}
回答老大的问题:
1.怎么查找资料:
一般都是百度查找对应资料,喜欢看csdn和脚本之家的资料;无法解决的就会询问师兄,查看师兄代码;
2.怎么定位问题:
首先确定怎么导致的该问题,然后顺藤摸瓜,逐步确定问题所在
3.怎么解决问题:
确定问题后,1.在该问题上实现修复;2.换种别的实现方式,规避该问题;
4.怎么重构代码
目前一般是,感觉逻辑混乱或则代码过于蠢的时候会想办法重构一下代码,将多余的东西删除,将函数封装等;
5.怎么选择框架
目前没有选择的余地,都只会一种框架
6.怎么测试
先单元测试,确保每个模块正常,之后整理测试查看主体功能是否正常,在根据临界值进行测试,查看是否正常;
评论