douchuo0730 2016-04-15 09:34
浏览 64

Laravel - Vuejs:删除重复的时段

I am working with laravel(5.2) and vuejs. Also i am new to both of laravel and vuejs. Here, i want to remove repeated time slots using vuejs.

My blade file contain:

<div class="form-group">
        <label for="form-field-slots">Time Slots&nbsp;&nbsp;<span v-if="loading"><i style="color:#777777" class="fa fa-spinner fa-spin text-center"></i></span></label>
        <select class="form-control " v-model="appointment.selected_time" id="form-field-provider">
            <option value="" selected v-if="available_time_slots.length==0">--No slots are available--</option>
            <option value="" else>Select slot</option>  
            <option v-for="option in available_time_slots" v-bind:value="option">
                {{ option.time | d2d-time-format}}
            </option>
        </select>               
    </div>

And my vuejs file's method of loadAvailableTimeSlots should be like this:

loadAvailableTimeSlots: function(newDate){
        var self = this;
        self.available_time_slots = [];
        iframe_resize(self.width);
        self.loading = true;
        var date = newDate ? newDate : moment().format('YYYY-MM-DD');
        var service_id = self.appointment.service_id;
        var provider_id = self.appointment.provider_id;

        self.appointment.date = date;
        var url = '/bookappointment/availableslots/' + service_id + '/' + date + (provider_id ? '/'+provider_id : '');

        jQuery.ajax({       
            url: url,
            success: function(data) {
                console.log("data.....with input_data");
                console.log(data.input_data);
                for(var i = 0 ;i<data.input_data.length;i++){
                    data.input_data[i].selected = false;
                }                       
                self.available_time_slots = data.input_data; 
                setTimeout(function(){iframe_resize(self.width);},50);
                self.loading = false;                               
            },
            error: function(){
                self.loading = false; 
            }
        });
    },

When i use console.log(data.input_data); its give me result like:

 Object { time="09:00",  providers=[1],  selected=false}
 Object { time="09:00",  providers=[1],  selected=false}
 Object { time="09:30",  providers=[1],  selected=false}
 Object { time="09:30",  providers=[1],  selected=false}
 Object { time="10:00",  providers=[1],  selected=false}
 Object { time="10:00",  providers=[1],  selected=false}

And i want like:

 Object { time="09:00",  providers=[1],  selected=false}
 Object { time="09:30",  providers=[1],  selected=false}
 Object { time="10:00",  providers=[1],  selected=false}
 Object { time="10:30",  providers=[1],  selected=false}

Any help will be appreciate. Thanks in advance.:)

  • 写回答

1条回答 默认 最新

  • dou44481 2016-05-11 20:16
    关注

    you would write a filter that removes duplicates and apply it you your v-for loop

    ie

    Filter

    Vue.filter('dedup', function (data) {
      var filtered = []
      for (var i = 0; i < data.length; i++) {
        var times = filtered.map(function (o) { return o.time })
        var item = data[i]
        if (times.indexOf(item.time) === -1) {
          filtered.push(item)
        }
      }
      return filtered
    })
    

    Apply Filter

    <div class="form-group">
            <label for="form-field-slots">Time Slots&nbsp;&nbsp;<span v-if="loading"><i style="color:#777777" class="fa fa-spinner fa-spin text-center"></i></span></label>
            <select class="form-control " v-model="appointment.selected_time" id="form-field-provider">
                <option value="" selected v-if="available_time_slots.length==0">--No slots are available--</option>
                <option value="" else>Select slot</option>  
                <option v-for="option in available_time_slots | dedup" v-bind:value="option">
                    {{ option.time | d2d-time-format}}
                </option>
            </select>               
        </div>
    
    评论

报告相同问题?

悬赏问题

  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?
  • ¥100 求三轴之间相互配合画圆以及直线的算法
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发