最近在開發過程當中遇到一個問題。在節點上面寫點擊事件時,點擊事件不執行。代碼以下:vue
<!-- 操做 --> <el-table-column label="操做"> <template slot-scope="scope"> <span class="poi icon-hover f16 mr20" @click='scope.row.edit=!scope.row.edit'> <svg-icon :icon-class="scope.row.edit?'icon_edit_outline':'icon_save'"></svg-icon> </span> <span class="poi icon-hover f16"> <svg-icon icon-class="icon_delete"></svg-icon> </span> </template> </el-table-column> <!-- 操做 -->
這裏面的click事件一直不執行,一開始覺得是點擊事件沒寫對一直在找緣由,後面忽然想到會不會是數據不一樣步的緣由的,由於edit字段是本身添加進去的字段,以下:svg
export default { name: 'strategic', data() { return { tableData: [{ 'pp_id': 4, 'brand_name': '1414', 'project_name': '得意', 'description': '的u會回來會', 'publish_time': '2018-07-23', 'is_used': 0 }] } }, components: { }, computed: { }, created() { this.initTableData() }, methods: { initTableData() { this.tableData.forEach(element => { element.edit = false }) } } }
以後我直接在數據裏面加上edit字段,發現是可以同步數據的,代碼以下:this
data() { return { tableData: [{ 'pp_id': 4, 'brand_name': '1414', 'project_name': '1414', 'description': '7588888888', 'publish_time': '2018-07-23', 'is_used': 0, 'edit': false }] } }
原來是在咱們使用vue進行開發,當生成vue示例後,再次給數據賦值時,有時候並不能自動更新到數據上去,這時候咱們就要經過$set來解決這個問題,解決代碼以下:spa
initTableData() { this.tableData.forEach(element => { this.$set(element, 'edit', false) }) }
至此就解決啦。code