当我点击表的一个特定行时,它应该在新标签页中显示该特定行的详细信息,如何在Vue.js中做到这一点?我对JS和Vue都是新手

wi3ka0sx  于 2022-11-25  发布在  Vue.js
关注(0)|答案(1)|浏览(189)

下面是我的子组件和父组件的Vue代码,它将显示从API中提取的员工详细信息,我们可以单击特定行的表格格式。
当我点击特定行时,如何在新标签中显示完整的行详细信息?我是javascript和vue.js新手,请帮助我如何做到这一点...
下面是子组件EmployeList.vue

<template>
    <div>

        <h1>Employee List</h1>
        <table border ="1px" id="tableData">
           <tr>
             <td>Name</td>
             <td>Salary</td>
             <td>Age</td>
           </tr>
           
           <tr  v-for="item in list" v-bind:key="item.id">
            <td><el-link type="primary" href="" target="_blank" onclick="myFunction()">{{item.employee_name}}</el-link></td>
            <td>{{item.employee_salary}}</td>
            <td>{{item.employee_age}}</td>

           </tr>

           
    
        </table>

    </div>
</template>

<script>
import Vue from 'vue';
import axios from 'axios';
import VueAxios from 'vue-axios';
Vue.use(axios,VueAxios)

    export default 
    {
        name:'EmployeList',
        props: ['employeName','employeSalary','employeAge'],
        data()
        {
            return{list: undefined,}
        },

        mounted()
        {
            axios.get('http://dummy.restapiexample.com/api/v1/employees').then((resp)=>
            {
                this.list = resp.data.data;
                console.warn(resp.data.data)
            })
        },
        methods:
        {
            myFunction()
            {
                
             
            }
        }
    }
</script>


<style scoped>

</style>

这里是父组件索引。vue

<template>
  <div>
   
    <EmployeList />
    
    
 
  </div>
</template>

<script>

import EmployeList from '../components/EmployeList.vue'



export default {
    name: "Index",
    components: {EmployeList},
    data(){
      return {
        name:'Vishwas',
        channel: 'CodeEvolution',
      }
    },

}
</script>

<style>
#app{
  font-family: Avenir, Helvetica,Arial,sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
  margin-top: 60px;

}

</style>
uz75evzq

uz75evzq1#

您可以使用@click来行程数据表数据列上的click事件,因此您应该将它加入<tr>,如下所示:

<tr @click="doSomething">
....
</tr>

现在您应该在methods中定义doSomething

export default {
   ...
   methods: {
      doSomething () {
         // Put what you want to do here
      }
   }
   ...
}

现在你想打开一个新的标签页,你可以用js中的window对象来实现,如下所示:

window.open('http://example.com')

此外,您应该将单击的行id发送到一个新的选项卡,这样您就可以在函数中定义一个argument,如下所示:
第一个

相关问题