[{"btnName":"审核通过","authType":"11","type":"text","icon":"el-icon-check","hideType":"","func":"publish"},{"btnName":"审核不通过","authType":"12","type":"text","icon":"el-icon-close","hideType":"","func":"publish"}] vue 遍历这个json数组 生成两个button json中的func 是click调用的方法名 怎么实现
时间: 2023-07-17 09:06:14 浏览: 109
要在 Vue 中遍历该 JSON 数组并生成两个按钮,同时每个按钮的点击事件调用对应的方法,可以按照以下步骤来实现:
1. 在 Vue 组件的 data 中定义一个数组,用于存储 JSON 数组的数据,例如 `buttons: []`。
2. 在 Vue 组件的 `created` 或 `mounted` 钩子函数中,将 JSON 数组赋值给 `buttons` 数组。假设 JSON 数组保存在组件的 `jsonArray` 属性中,可以使用 `this.buttons = this.jsonArray` 进行赋值。
3. 在模板中使用 `v-for` 指令遍历 `buttons` 数组,并生成相应的按钮。假设每个按钮的文本显示在 `btnName` 属性中,点击按钮时调用的方法名保存在 `func` 属性中,可以使用以下代码实现:
```html
<template>
<div>
<button v-for="button in buttons" :key="button.btnName" @click="invokeMethod(button.func)">
{{ button.btnName }}
</button>
</div>
</template>
```
4. 在 Vue 组件的 methods 中定义 `invokeMethod` 方法,该方法根据传入的方法名调用对应的方法。注意要确保该方法已定义在 Vue 组件中。
```javascript
<script>
export default {
data() {
return {
buttons: []
}
},
created() {
this.buttons = this.jsonArray; // 将 JSON 数组赋值给 buttons 数组
},
methods: {
invokeMethod(methodName) {
// 根据方法名调用对应的方法
this[methodName]();
},
publish() {
console.log("点击了审核通过按钮");
// 执行审核通过的逻辑
},
reject() {
console.log("点击了审核不通过按钮");
// 执行审核不通过的逻辑
}
}
}
</script>
```
这样,Vue 组件就会根据 JSON 数组动态生成两个按钮,并且点击按钮时会调用对应的方法。在示例代码中,`publish` 方法和 `reject` 方法分别对应 JSON 中的 `publish` 和 `reject` 方法名。你可以根据实际需求修改这些方法的逻辑。
阅读全文