发表于: 2017-02-10 23:13:44
4 1274
一、今天完成的事情:
1.就写了写了一个轮播图,碰到了很多坑,下面为一一描述;
二、明天要做的事情:
1.完成找工作页面的用户搜索
三、遇到的问题:
1.我们轮播图使用了btui的轮播插件,这个轮播插件里面涉及到数据的一个silid这个变量,这个变量是不能更改的,所以,如果存在一个页面有多个轮播的情况,那么就需要它每个轮播都有一个独立的作用域,所以就只剩下一个方法,使用指令来让他们有各自独立的作用域!在使用指令的时候要特别注意,使用templateUlr的时候,需要在最上面加上一个div,这样才能隔开,不然你的指令就写进了你的div里面,会产生冲突!
2.了解了指令是如何和外面交互的,使用=可以和父作用域中的controller进行双向绑定,用@是单向绑定,即将父级的传入,指令里面改变父controller里面的不会改变,使用&可以绑定父作用域里面的方法。
3.我在从服务器获取的值的时候,想将取到的1这些数字改变为对应的字符串,这里我想到了用filter,用了两次for循环,过程很曲折,第一次没有注入,注入后发现没有取到对应的值,最后找到了原因,我的name变量和服务器上取到的name冲突了,直接取到服务器上的name中的值,这里我学会了[""+name]的方法来处理对象传入值,这里有必要贴一下代码:
var mainFil = angular.module("mainFil",[]);
/*转化公司信息里的数字为文字*/
mainFil.filter('reachIndustry',function () {
return function (industry1data,name) {
var industryLength = industry1data.length;
for (var i = 0; i < industryLength; i++) {
if (name=='industryList') {
var namelength = industry1data[i][''+name].length;
for (var j = 0; j<namelength;j++) {
switch (industry1data[i][''+name][j]) {
case 0 :
industry1data[i][''+name].splice(j,1,"移动互联网");
break;
case 1 :
industry1data[i][''+name].splice(j,1,"电子商务");
break;
case 2 :
industry1data[i][''+name].splice(j,1,"企业服务");
break;
case 3 :
industry1data[i][''+name].splice(j,1,"O2O");
break;
case 4 :
industry1data[i][''+name].splice(j,1,"教育");
break;
case 5 :
industry1data[i][''+name].splice(j,1,"金融");
break;
case 6 :
industry1data[i][''+name].splice(j,1,"游戏");
break;
}
}
}
}
return industry1data;
}
可以看到我这里面用了swich方法,来改变它每次的值,第一次for循环确定每一个object的位置,第二次for循环确定object里面name变量属性所在的位置,写入name变量的原因是,我以后有可能会传入其他值来进行判断,这样我就只需要改值和增加if就行了,为了复用性考虑;
虽然写代码的感觉很爽,但是感觉自己快爆炸了,好多东西都不会,好多东西都要学,果然菜鸡就是菜。。很难受,只有好好学好好做了。
评论