Как передать динамическое имя функции событию click в Vue Js - PullRequest
0 голосов
/ 15 октября 2018

Есть ли способ передать имя функции из параметров?

что-то вроде этого ..

<tr v-for="item in items" class="static" 
    v-bind:class="{'evenRow': item.oddeven=='1', 'oddRow': item.oddeven=='0' }"
@click="item.click(item.contactID)" >

</tr>  

item.click не преобразуется как соответствующая функция при рендерингестр.как правильно подходить к любым предложениям?

Ответы [ 3 ]

0 голосов
/ 15 октября 2018

Для использования динамического вызова функции предлагается иметь вспомогательную функцию, которая получает имя функции и вызывает соответствующую функцию.

handle_function_call(function_name) {
    this[function_name]()
},

И из шаблона при итерации по элементам, которые выможно вызвать эту функцию, передав имя функции, например

<button v-for="button of items"
       :key="button.id" 
       @click="handle_function_call(button.fn_name)" //=> note here
>
  {{ button.text }}
</button>

См. это в действии в jsfiddle

0 голосов
/ 30 апреля 2019

@ click = "[fuctionName] ($ event, index)"

Пример:

<button v-for="(button,index) in items" @click="[fuctionNames[index]]($event, index)" > // consider fuctionNames array of Function Names.
0 голосов
/ 15 октября 2018

Вы можете передавать данные с событием

или взять поле ввода только для чтения с v-моделью

Пример:

<tr v-for="item in items" class="static" 
    v-bind:class="{'evenRow': item.oddeven=='1', 'oddRow': item.oddeven=='0' }"
@click="itemClick" >

</tr>  

new Vue({
  ...
  ...
  methods:{
    itemClick:function(event){
       console.log(event.target.value);
    }
  }
})
...