发表于: 2017-06-03 23:28:15

1 1182


今天完成的事情:

1.完成了小课堂的上传,文章的撰写,并上传了视频,简书投了稿。

2.继续写任务7,懒加载最后借鉴王蒙师兄的代码完成了。

var myApp = angular.module("home", ['ui.router', 'oc.lazyLoad']);

myApp.config(function($stateProvider, $urlRouterProvider) {

    $urlRouterProvider.when("", "/login");

    $stateProvider

        .state("login", {

            url: "/login",

            templateUrl: "BackstageLogin.html",

            resolve: {

                loadMyFile: ["$ocLazyLoad", function($ocLazyLoad) {

                    return $ocLazyLoad.load(["js/BackstageLogin.js", "css/BackstageLogin.css"], {serie: true});

                }]

            }

        })

        .state("main", {

            url: "/main",

            templateUrl: "backstageMain.html",

            resolve: {

                loadMyFile: ["$ocLazyLoad", function($ocLazyLoad){

                    return $ocLazyLoad.load(["js/backstage.js", "css/backstage.css"]);

                }]

            }

        })

        .state("main.welcome",{

            url: "/welcome",

            templateUrl: "welcome.html"

        })

        .state("main.article",{

            url: "/article",

            templateUrl: "Article.html"

        })

        .state("main.detail",{

            url: "/detail",

            templateUrl: "detail.html"

        });

});

然后开始任务7最后页面的数据展示工作,我以为很简单,会很快就完成的,然而我还是too young too simple,等我get到数据后,开始展示的时候,发现尼玛,很多数据还需要二次转换才能用,比如说类型,后端特么就返回一个type:0、1、2、3,接口文档是写清楚了,但是可把前端坑苦了啊,这还好只有四个类别,要是100个呢?玩死前端么?后端直接返回字符串应该不难吧。

下面是我的代码:

$http({
method: "GET",
       url: "/carrots-admin-ajax/a/article/search"
   })
.then(function(response) {
console.log(response);
           var dataList = response.data.data.articleList;
           //不满10的在前面加0
           function add(a) {
return a < 10? "0" + a : a;
           }
//将时间戳转化为正常格式
           function format() {
var time = new Date();
               var y = time.getFullYear();
               var m = time.getMonth() + 1;
               var d = time.getDate();
               var h = time.getHours();
               var mm = time.getMinutes();
               var s = time.getSeconds();
               return y + "-" + add(m) + "-" + add(d) + " " + add(h) + ":" + add(mm) + ":" + add(s);
           }
for(var i = 0; i < dataList.length; i++) {
dataList[i].createAt = format(dataList[i].createAt);
               dataList[i].updateAt = format(dataList[i].updateAt);
               if (dataList[i].type === 0) {
dataList[i].type = "首页Banner";
               }
else if (dataList[i].type === 1) {
dataList[i].type = "找职位Banner";
               }
else if (dataList[i].type === 2) {
dataList[i].type = "找精英Banner";
               }
else if (dataList[i].type === 3) {
dataList[i].type = "行业大图";
               }
if(dataList[i].status === 1) {
dataList[i].status = "草稿";
               }
else if(dataList[i].status === 2) {
dataList[i].status = "上线";
               }
}
$scope.records = dataList;
       });
});

3.学习了时间戳的几种转化方式:

a.首先是怎么获取时间戳:

1)js获取当前时间戳:

var timestamp1 = Date.parse(new Date());

var timestamp2 = (new Date()).valueOf();

var timestamp3 = new Date().getTime();

2)js获取定制时间戳:

var oldTime = (new Date("2015/06/23 08:00:20")).getTime()/1000;

getTime()返回数值的单位是毫秒

b.转化时间戳:

1)Date toLocaleString方法:

function getLocalTime(nS) {  

 return new Date(parseInt(nS) * 1000).toLocaleString().replace(/:\d{1,2}$/,' ');  

}

parseInt() 函数可解析一个字符串,并返回一个整数。

js中时间操作单位是毫秒。

toLocaleString() 方法可根据本地时间把 Date 对象转换为字符串,并返回结果。

replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。

replace(/:\d{1,2}$/,' ')验证替换以:开始有一位或二位数字的结束字符串,就是秒;替换为空

2)Date 属性方法:

function add0(m){return m<10?'0'+m:m }

function format(shijianchuo)

{

//shijianchuo是整数,否则要parseInt转换

var time = new Date(shijianchuo);

var y = time.getFullYear();

var m = time.getMonth()+1;

var d = time.getDate();

var h = time.getHours();

var mm = time.getMinutes();

var s = time.getSeconds();

return y+'-'+add0(m)+'-'+add0(d)+' '+add0(h)+':'+add0(mm)+':'+add0(s);

}

明天计划的事情:

完成任务7,已经耗费太长时间了

遇到的问题:

列表底部翻页的还没有思路

收获:

时间戳的转换方式;如何使用ng-repeat展示数据


返回列表 返回列表
评论

    分享到