當(dāng)排序時候 調(diào)用sortchange鉤子函數(shù),然后會觸發(fā)initsort方法,我本想讓第一行不出現(xiàn)上移的圖片(強制把排序后的圖片更新,沒成功),但是table的數(shù)據(jù)變化了,但是頁面沒有變化!請問為什么會這樣?
<template>
<div>
<!--音頻分集-->
<div class="brand">
<el-breadcrumb class="brand">
<el-breadcrumb-item>系統(tǒng)首頁</el-breadcrumb-item>
<el-breadcrumb-item>音頻分集</el-breadcrumb-item>
</el-breadcrumb>
</div>
<div class="pad">
<div>
<el-container>
<el-header>
<i class="icon iconfont icon-icon--"></i>
<span>分集列表(3集)</span>
</el-header>
<el-main>
<el-table
:data="tableData"
@sort-change = 'sortchange'
style="width: 100%">
<el-table-column
prop="id"
label="編號"
sortable
width="220%"
>
</el-table-column>
<el-table-column
prop="audioName"
label="音頻名稱"
sortable
width="220%">
</el-table-column>
<el-table-column
prop="format"
label="格式"
width="220%">
</el-table-column>
<el-table-column
prop="format"
label="格式"
width="220%">
</el-table-column>
<el-table-column
prop="quantity"
label="閱讀量"
sortable
width="220%">
</el-table-column>
<el-table-column prop="sort" label="排序" width="220%">
<template slot-scope="scope">
<img v-show="scope.row.downimg" :src="scope.row.downimg" width="12%">
<img v-show="scope.row.upimg" :src="scope.row.upimg" width="12%">
</template>
</el-table-column>
</el-table>
</el-main>
</el-container>
</div>
</div>
</div>
</template>
<script>
import Vue from 'vue'
import downimg from '@/assets/xiayi.png'
import upimg from '@/assets/shangyi.png'
export default {
name: "video-diversity",
created(){
this.initsort()
},
data() {
return {
audioname: '',
tableData: [
{
id: '100001',
audioName: '001-走向中考考場·七年級道德與法治',
format: 'MP3',
size: '10M',
quantity: 23434,
downimg: downimg,
upimg: upimg,
}, {
id: '100002',
audioName: '003-走向中考考場·七年級道德與法治',
format: 'MP3',
size: '10M',
quantity: 4534,
downimg: downimg,
upimg: upimg,
}, {
id: '100003',
audioName: '005-走向中考考場·七年級道德與法治',
format: 'MP3',
size: '10M',
quantity: 45340,
downimg: downimg,
upimg: upimg,
}
],
}
},
methods: {
search() {
console.log(this.audioname);
},
sortchange(obj){
this.initsort()
},
initsort(){
Vue.set(this.tableData[0], 'upimg', '')
Vue.set(this.tableData[this.tableData.length-1], 'downimg', '')
this.tableData = this.tableData.filter(function (item) {
console.log(item);
return item
})
},
downclick(a,b,c){
console.log(a);
},
upclick(){
}
},
watch:{
'tableData':function (newval,oldval) {
console.log(newval);
},
},
beforeUpdate(){
// debugger
Vue.set(this.tableData[0], 'upimg', '')
Vue.set(this.tableData[this.tableData.length-1], 'downimg', '')
}
}
</script>
vue 數(shù)組更新檢測
不好意思中午掃了一眼你的問題感覺可能是數(shù)組更新沒有檢測到的原因就強答了,剛才實際測試了一下,實際上你這樣寫是可以觸發(fā)更新的,具體你不行的原因因為代碼不全沒有辦法分析
看過你的代碼了,你只是啟用sortable
并沒有把sortable
設(shè)置為custom
啟用自定義排序,這個情況下其實el-table
并沒有改變你tableData
的排序順序,所以這個樣子當(dāng)然實現(xiàn)不了頭尾隱藏的效果
這樣給你提供一種比較簡單的實現(xiàn)思路,直接通過當(dāng)前列的index判斷是否是第一行或最后一行就行了
<el-table-column prop="sort" label="排序" width="220%">
<template slot-scope="{row, $index}">
<el-button v-show="!!$index" :icon="downimg"></el-button>
<el-button v-show="$index < tableData.length - 1" :icon="upimg"></el-button>
<!--
<img v-show="!!$index" :src="downimg" width="12%">
<img v-show="$index < tableData.length - 1" :src="upimg" width="12%">
-->
</template>
</el-table-column>
這個實現(xiàn)方式可以把downimg
和upimg
放在data里面,不用每個數(shù)據(jù)都賦值,更科學(xué),節(jié)約內(nèi)存
data() {
return {
downimg: downimg,
upimg: upimg,
audioname: '',
tableData: [
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
北大青鳥中博軟件學(xué)院創(chuàng)立于2003年,作為華東區(qū)著名互聯(lián)網(wǎng)學(xué)院和江蘇省首批服務(wù)外包人才培訓(xùn)基地,中博成功培育了近30000名軟件工程師走向高薪崗位,合作企業(yè)超4
中公教育集團創(chuàng)建于1999年,經(jīng)過二十年潛心發(fā)展,已由一家北大畢業(yè)生自主創(chuàng)業(yè)的信息技術(shù)與教育服務(wù)機構(gòu),發(fā)展為教育服務(wù)業(yè)的綜合性企業(yè)集團,成為集合面授教學(xué)培訓(xùn)、網(wǎng)
達內(nèi)教育集團成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機構(gòu),是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
浪潮集團項目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗,技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點難點突出、引人入勝。
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。