vue set 使用 結合 實際應用 遇到 简体版
原文   原文鏈接

最近在開發過程當中遇到一個問題。在節點上面寫點擊事件時,點擊事件不執行。代碼以下: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

相關文章
相關標籤/搜索
每日一句
    每一个你不满意的现在,都有一个你没有努力的曾经。
本站公眾號
   歡迎關注本站公眾號,獲取更多信息