发表于: 2017-04-01 12:57:26

1 1277


完成的事情:

开始搭建filter、sevice、directive等模块方法并初步使用


计划的事情:

建立信息筛选的filter方法


问题:

使用轮播图,对首页的“最新职位”内容进行合并,实现轮播效果,建立directive方法调用轮播图方法,以免轮播图不播的情况发生。

.directive('dCarousel',function(){

return function(scope,ele,attrs){

$('#'+attrs.id).carousel({

interval: 3000

});

}

})

根据样式,轮播图内仅留下内容部分,去除原封装的导航点和左右切换部分,在轮播图外添加图片按钮,并添加左右切换的点击事件。由于其他轮播图可能也需要,做成factory方法进行调用。

service.carLeft = function(id){

$('#'+id).carousel('prev');

}

service.carRight = function(id){

$('#'+id).carousel('next');

}


对向后台请求数据的方法进行封装。

由于$http方法是异步执行,若在controller中调用factory封装的方法,没法使用“=”对返回值进行赋值。

引用$q的defer对象(延时对象),使用其中resolve和reject方法,返回promise数据,并在controller调用方法后方,添加.then函数来读取返回数据即可。

方法:

service.http = function(met,Url,send){

// defer()创建延迟对象

// notify()传递中间过程

// resolve()成功

// reject()失败

// when()传递已有数据不产生延迟

var ajaxData = $q.defer();

$http({

method:met,

url:"/carrots-ajax/"+Url,

params:send

})

.success(function(data, status, headers, cfg){

ajaxData.resolve(data);

})

.error(function(data, status, headers, cfg){

ajaxData.reject(data);

});

return ajaxData.promise;

}

调用:

.http('get','a/article/search',{}).then(function(res){

global.data = res;

global.pic = global.data.data.articleList

//console.log(global.data);

console.log(global.pic);

});


收获:

factory、directive


返回列表 返回列表
评论

    分享到