A
A
Andrew2019-04-03 12:29:26
Vue.js
Andrew, 2019-04-03 12:29:26

How to track such v-model in watch: v-model="props.item.dsec_declarant_kind"?

VueTIFY template:

<v-data-table
          :headers="dsec_headers"
          :items="dsec"
        >
         <template v-slot:items="props">
            <tr :id="'row'+props.item.dsec_nnn" @click="mainTableRowClick(props.item.dsec_nnn)">
              <td>
                <div>{{ props.item.dsp_inf }}</div>
              </td>
              <td>
                <div>{{ props.item.dsec_nnn }}</div>
              </td>
              <td>
                <v-select
                  v-model="props.item.dsec_declarant_kind"
                  :items="ddk"
                  item-text="ddk_name"
                  item-value="ddk_code"
                  solo
                  flat
                  hide-details
                  single-line
                  menu-props="auto"
                ></v-select>
              </td>
            </tr>
          </template>
</v-data-table>

Answer the question

In order to leave comments, you need to log in

2 answer(s)
0
0xD34F, 2019-04-03
@0xD34F Vue.js

It is possible to make a computed property out of these dsec_declarant_kind:

computed: {
  declarantKind() {
    /*
     *  я так понимаю, dsec_nnn - штука уникальная, раз вы её используете при назначении id,
     *  так что используем её для связи отслеживаемых значений с элементами исходного массива
     */
    return this.dsec.map(n => [ n.dsec_nnn, n.dsec_declarant_kind ]);
  },
},

And track it:
watch: {
  declarantKind(newVal, oldVal) {
    const
      // найдём идентификатор изменившегося значения
      nnn = oldVal.find((n, i) => n[1] !== newVal[i][1])[0],
      // и сам элемент, в котором произошли изменения
      item = this.dsec.find(n => n.dsec_nnn === nnn);
  },
},

P
paramid, 2019-04-03
@paramid

watch: {
  'props.item.dsec_declarant_kind': function (after, before) {
    // код
  }
}

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question