Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何通过单击select元素(Vue.js)的选项项来触发操作?_Javascript_Html_Vue.js - Fatal编程技术网

Javascript 如何通过单击select元素(Vue.js)的选项项来触发操作?

Javascript 如何通过单击select元素(Vue.js)的选项项来触发操作?,javascript,html,vue.js,Javascript,Html,Vue.js,作为JS对象的选项列表: options: [{ text: this.$t('analytics.pastDays', { days: 7 }), value: 7 }, { text: this.$t('analytics.pastDays', { days: 28 }), value: 28 }, { text: this.$t('analytics.pastDays', { days: 360 }), value: 360 }, { text: this.$t

作为JS对象的选项列表:

options: [{
  text: this.$t('analytics.pastDays', { days: 7 }),
  value: 7
}, {
  text: this.$t('analytics.pastDays', { days: 28 }),
  value: 28
}, {
  text: this.$t('analytics.pastDays', { days: 360 }),
  value: 360
}, {
  text: this.$t('analytics.customDate'),
  value: 7,
  method: () => { console.log('Worked') }
}],
选择元素:

<select
  class="i-select"
  v-model="value"
  @change="onChange($event)">
  <option
    v-for="option in options"
    :value="option.value"
    @click.stop.prevent="option.method($event)">
    {{ option.text }}
  </option>
</select>

{{option.text}
知道吗,控制台日志从不记录


如何使
analytics.CustomDate
选项触发其方法?

我认为选项上的单击事件将不起作用,我们可以利用其更改事件(不确定选项元素是否不考虑onclick)

您可以在此代码段中检查变通方法

var选项=[{
文本:“analytics.pastDays”,
数值:7,
方法:function(){console.log('选择了这个(7)。')}
}, {
文本:“analytics.pastDays”,
价值:28
}, {
文本:“analytics.pastDays”,
价值:360,
方法:function(){console.log('选择了这个(360)。')}
}, {
文本:“analytics.customDate”,
价值:70,
方法:function(){console.log('选择了这个(70)。')}
}];      
var vm=新的Vue({
el:“#应用程序”,
数据:{
选项:你的选项,
值:“”
},
挂载:函数(){
},
方法:{
onChange:函数(值){
var selected=yourOptions.filter(函数(obj){
返回obj.value==值
})
如果(已选定。长度>0){
selected.forEach(函数(选项){if(option.method){option.method();}})
}
}
}
})

VueJS
{{option.text}