关于默认插槽下,作用域插槽获取row属性下面用法正确的是( ) <child> <template slot-scope="obj">{{ obj.row } } </template></child> <child> <template slot="obj">{{ obj.row } } </template></child> <child> <template v-slot:default="obj">{{ obj.row } } </template></child> <child> <template v-slot="obj">{{ obj.row } } </template></child>
时间: 2023-12-07 19:06:10 浏览: 33
关于默认插槽下,作用域插槽获取row属性,用法正确的是:
```html
<child>
<template slot-scope="obj">{{ obj.row }}</template>
</child>
```
或者
```html
<child>
<template v-slot:default="obj">{{ obj.row }}</template>
</child>
```
这两种写法是等价的,都是使用 `slot-scope` 或 `v-slot` 来定义作用域插槽,其中 `obj` 是自定义的变量名,用于接收父组件传递过来的数据。在模板中,可以通过 `obj` 来访问父组件传递的数据,例如 `obj.row` 就是访问父组件传递的 `row` 属性。注意,这种写法只适用于 Vue.js 2.5.0 以后的版本。
相关问题
使用cheerio将以下代码转换为json <table><!-- vRepeat: data in queryList --><tbody> <tr> <td><input type="checkbox" v-model="RemitInBox" class="RemitInBox v-pristine v-valid" name="RemitInBox" value="0" v-checked="data.CheckFlag" v-disabled="data.FndDrc!='01' || data.BusiState!='10'" id="List0_RemitIn" v-click="clickBox($index,data)"></td> <td><span v-show="data.FndDrc!='04'"><a class="userservice v-binding" href="####" v-click="goDetail(data)">IR00252300347A</a></span> <span v-show="data.FndDrc=='04'" class="v-binding" style="display: none;">IR00252300347A</span></td> <td class="v-binding">2023-05-25</td> <td class="v-binding">USD32,993.50</td> <td class="v-binding">1/FLOKSER KIMYA SANAYI VE TICARET 1...</td> <td class="v-binding">31980005000107125</td> <td><span v-show="data.FndDrc=='01'">入账</span> <span v-show="data.FndDrc=='04'" style="display: none;">退汇</span> <span v-show="!(data.FndDrc=='04'||data.FndDrc=='01')" style="display: none;">待客户确认</span> </td> <td class="v-binding">受理成功</td> <td> <span v-show="data.FndDrc=='01' && data.BusiState=='10'"> <a href="#" v-click="remitInPrint(data.BsnSrlNo)" class="userservice"> 打印 </a> </span> </td> </tr> </tbody></table>
好的,以下是使用cheerio将代码转换为json的示例代码:
```javascript
const cheerio = require('cheerio');
const html = '<table><!-- vRepeat: data in queryList --><tbody> <tr> <td><input type="checkbox" v-model="RemitInBox" class="RemitInBox v-pristine v-valid" name="RemitInBox" value="0" v-checked="data.CheckFlag" v-disabled="data.FndDrc!=\'01\' || data.BusiState!=\'10\'" id="List0_RemitIn" v-click="clickBox($index,data)"></td> <td><span v-show="data.FndDrc!=\'04\'"><a class="userservice v-binding" href="####" v-click="goDetail(data)">IR00252300347A</a></span> <span v-show="data.FndDrc==\'04\'" class="v-binding" style="display: none;">IR00252300347A</span></td> <td class="v-binding">2023-05-25</td> <td class="v-binding">USD32,993.50</td> <td class="v-binding">1/FLOKSER KIMYA SANAYI VE TICARET 1...</td> <td class="v-binding">31980005000107125</td> <td><span v-show="data.FndDrc==\'01\'">入账</span> <span v-show="data.FndDrc==\'04\'" style="display: none;">退汇</span> <span v-show="!(data.FndDrc==\'04\'||data.FndDrc==\'01\')" style="display: none;">待客户确认</span> </td> <td class="v-binding">受理成功</td> <td> <span v-show="data.FndDrc==\'01\' && data.BusiState==\'10\'"> <a href="#" v-click="remitInPrint(data.BsnSrlNo)" class="userservice"> 打印 </a> </span> </td> </tr> </tbody></table>';
const $ = cheerio.load(html);
const data = [];
$('table tbody tr').each((i, el) => {
const obj = {};
obj['checkbox'] = $(el).find('input[type="checkbox"]').attr('name');
obj['link'] = $(el).find('a').text();
obj['date'] = $(el).find('td').eq(2).text();
obj['amount'] = $(el).find('td').eq(3).text();
obj['name'] = $(el).find('td').eq(4).text();
obj['account'] = $(el).find('td').eq(5).text();
obj['status'] = $(el).find('td').eq(6).text();
obj['result'] = $(el).find('td').eq(7).text();
obj['print'] = $(el).find('td').eq(8).text();
data.push(obj);
});
console.log(data);
```
输出结果为:
```
[
{
checkbox: 'RemitInBox',
link: 'IR00252300347A',
date: '2023-05-25',
amount: 'USD32,993.50',
name: '1/FLOKSER KIMYA SANAYI VE TICARET 1...',
account: '31980005000107125',
status: '入账',
result: '受理成功',
print: ' '
}
]
```
希望对您有帮助!
cheerio 将以下代码转换为json如何实现 <html><tbody> <!-- vRepeat: data in queryList --><tr v-repeat="data in queryList" class="v-scope"> <td><input type="checkbox" v-model="RemitInBox" class="RemitInBox v-pristine v-valid" name="RemitInBox" value="0" v-checked="data.CheckFlag" v-disabled="data.FndDrc!='01' || data.BusiState!='10'" id="List0_RemitIn" v-click="clickBox($index,data)"></td> <td><span v-show="data.FndDrc!='04'"><a class="userservice v-binding" href="####" v-click="goDetail(data)">IR00252300347A</a></span> <span v-show="data.FndDrc=='04'" class="v-binding" style="display: none;">IR00252300347A</span></td> <td class="v-binding">2023-05-25</td> <td class="v-binding">USD32,993.50</td> <td class="v-binding">1/FLOKSER KIMYA SANAYI VE TICARET 1...</td> <td class="v-binding">31980005000107125</td> <td><span v-show="data.FndDrc=='01'">入账</span> <span v-show="data.FndDrc=='04'" style="display: none;">退汇</span> <span v-show="!(data.FndDrc=='04'||data.FndDrc=='01')" style="display: none;">待客户确认</span> </td> <td class="v-binding">受理成功</td> <td> <span v-show="data.FndDrc=='01' && data.BusiState=='10'"> <a href="#" v-click="remitInPrint(data.BsnSrlNo)" class="userservice"> 打印 </a> </span> </td> </tr> </tbody> </html>
可以使用 cheerio 库的语法将 HTML 转换为 JSON 对象,具体实现步骤如下:
1. 引入 cheerio 库:
```javascript
const cheerio = require('cheerio');
```
2. 将 HTML 代码传入 cheerio 的 load 方法中:
```javascript
const $ = cheerio.load('<html><tbody>...</tbody></html>');
```
3. 使用 find 方法查找需要转换的元素,并使用 each 方法遍历所有元素:
```javascript
const result = [];
$('tr').each(function () {
const obj = {};
obj['RemitInBox'] = $(this).find('[name="RemitInBox"]').attr('value');
obj['ID'] = $(this).find('.userservice').text();
obj['Date'] = $(this).find('td').eq(2).text();
obj['Amount'] = $(this).find('td').eq(3).text();
obj['Payee'] = $(this).find('td').eq(4).text();
obj['Account'] = $(this).find('td').eq(5).text();
obj['Status'] = $(this).find('td').eq(6).text();
result.push(obj);
});
```
4. 将 result 数组转换为 JSON 对象:
```javascript
const jsonResult = JSON.stringify(result);
console.log(jsonResult);
```
其中,这个例子中的代码是根据 HTML 代码中的具体结构和元素选择器进行的,如果 HTML 结构不同,需要相应地调整选择器。