<ul class="pagination"> <!-- 이전 --> <li class="paginate_button previous" :class="isFirstOrLast(results.first)" id="noticeList_previous"> <a href="javascript:;">Previous</a> </li> <!-- 첫 페이지 --> <li class="paginate_button" :class="(1 == (results.number+1))? 'active' : ''"> <a href="javascript:;" @click="movePage(1)">1</a> <!-- ... --> <li class="paginate_button disabled" v-if="results.number > 3"> <a href="javascript:;">...</a> </li> </li> <!-- 반복되는 페이지 --> <li class="paginate_button" :class="(n == (results.number+1))? 'active' : ''" v-for="n in (results.totalPages-1)" v-if="showPagingButton(n)"> <a href="javascript:;" @click="movePage(n)">{{ n }}</a> </li> <!-- ... --> <li class="paginate_button disabled" v-if="results.number < results.totalPages - 4"> <a href="javascript:;">...</a> </li> <!-- 마지막 페이지 --> <li class="paginate_button" :class="(results.totalPages == (results.number+1))? 'active' : ''"> <a href="javascript:;" @click="movePage(results.totalPages)">{{ results.totalPages }}</a> </li> <!-- 다음 --> <li class="paginate_button next" :class="isFirstOrLast(results.last)" id="noticeList_next"> <a href="javascript:;">Next</a> </li> </ul>
showPagingButton: function(n) { const vm = this var thisPage = vm.results.number + 1 var totalPage = vm.results.totalPages + 1 //[조건] 5페이지가 넘어가면 //[결과] 1 ~ 4페이지 숨겨주기 var cond1 = (thisPage < 5) && (n > 5) //[조건] 마지막페이지 ~ 마지막페이지-4 까지이면 //[결과] 마지막페이지-4를 제외한 나머지 페이지들 숨겨주기 var cond2 = (thisPage > (totalPage - 5)) && (n < (totalPage - 5)) //[조건] 첫페이지, 끝페이지 //[결과] 숨겨주기 var cond3 = (n == 1) || (n == totalPage) //[조건] thisPage > 4 이면 //[결과] 현재 페이지의 바로 앞 페이지를 제외한 앞에 애들 숨겨주기 var cond4 = (thisPage > 4) && (n < (thisPage - 1)) && (n < (totalPage - 5)) //[조건] thisPage < 마지막페이지-4 이면 //[결과] 현재 페이지의 바로 뒷 페이지를 제외한 뒤에 애들 숨겨주기 var cond5 = (thisPage < (totalPage - 4)) && (n > (thisPage + 1)) && (n > 5) if(cond1 || cond2 || cond3 || cond4 || cond5) return false return true }, isFirstOrLast: function(boolean) { return boolean? "disabled" : "" }, movePage: function(page) { this.formData.page = page-1 this.getLog(this.id) }
위와같이 하긴 했는데;
좀더 고민이 필요할듯.
'Study > Vue.js' 카테고리의 다른 글
[Vue.js] ubuntu에 nginx 설치하고 vue.js 설치하기 (1) | 2019.02.01 |
---|---|
[Vue.js] url 뒤에 붙는 #(hashtag) 없애기 (0) | 2019.01.13 |
[vue.js] Eventbus 만들기 (0) | 2018.10.22 |
[Vue.js] promise 사용하기 (0) | 2018.09.20 |
[Vue.js] class를 만들어 vue객체 사용하기 (0) | 2018.09.20 |
[Vue.js] mixin 전역 등록하기 (0) | 2018.09.20 |
[vue] img src data binding (0) | 2018.09.07 |
vue.js radio button 토글 이벤트 걸기 (0) | 2018.07.12 |