发表于: 2017-07-05 22:23:13

1 978


今天完成的事情:

修改萝卜多样式;


明天计划的事情:

演示demo;


遇到的困难:

在招职位的职位类别标签进行筛选这一块,遇到了一些问题。

从功能上来说,这个地方可做单选,也可做多选。不过都是事先注入相关的constant对象,然后通过ng-repeat将搜索条件获取出来,然后就设置ng-class={true:'bg-red'[list.choose]},通过list.choose为true的时候,bg-red类生效,从而会使得点击的标签背景色变红。

然后就是单多选问题了,如果做单选的话就非常简单,就是一个有限状态机,当鼠标点击的时候为true,其余的为false;而多选比单选复杂得多,之前还不知道该怎么实现多选功能,后来看了萝卜多官网的代码,感觉写得真好。

function (ind, arr) {//在函数中有两个传参ind和arr,第一个传参为索引,第二个为数组
 if (ind === 0) {
    arr.forEach(function (item) {
      item.choose = false
    });//当索引为0的时候,数组中的值都为false;
    arr[0].choose = true;//只有arr[0]为true
  }else {
    arr[ind].choose = !arr[ind].choose;
    arr[0].choose = false;
    if (arr.every(function (item) {
      return item.choose === false;//??不知道什么意思
    })) {
    arr[0].choose = !arr[0].choose;
  }
   }/*索引不等于0的情况,arr[0].choose=false,点击哪个,哪个状态改变,利用every
   方法为数组中的每个元素执行一次 callback 函数*/

不过在这个代码中我有一个问题,在else语句中的if条件语句中的arr.every是什么意思?是数组中每个元素执行一次的时候,arr[item].choose=false?,然后arr[0].choose=true?

收获:

学会单选和多选功能。


返回列表 返回列表
评论

    分享到