vue.js - TypeError:无法在 VueJS 的上下文中读取未定义的属性“替换”
问题描述
我正在过滤字符串中的一些字符。我遇到了几个有相同问题的问题,即控制台中的错误,但找不到任何好的答案。
这是我的字符串:
response_out1|response_out2|response_out3
这是我使用的方法:
<vs-select v-model="change">
<vs-select-item :key="index" v-bind="item" v-for="(item,index) in
userFriendly(out.changes)" />
</vs-select>
...
methods: {
userFriendly (str){
return str.replace(/_/g, ' ').split('|').map(value => ({text: value, value }))
}
这是我在 vs-select 中得到的输出:
response out1
response out2
response out3
我在控制台中遇到的错误:
在这里,我想知道为什么我会收到这个错误,我想知道如何纠正它,我期望的输出是:Response Out1
,这里如何以相同的方法将每个单词的第一个字符大写。
解决方案
您在模板中直接使用一种方法,每当您的数据更改时会导致多次调用,您可以使用计算属性来避免这种情况,不确定您是如何访问的out.changes
这可能会帮助您解决错误并大写文本,
capitalize(str) {
return str.charAt(0).toUpperCase() + str.slice(1);
},
sentenceCase (sentence) {
return sentence.split(' ').map(s => this.capitalize(s)).join(' '));
},
userFriendly (str) {
if (!str) return;
return str.replace(/_/g, ' ').split('|').map(value => ({text: this.sentenceCase(value), value }))
},
推荐阅读
- java - Java 8 组父子对象
- android - Android 通知在更新时附加内容
- api - 通过whatsapp查询shopify网站的产品
- javascript - Apollo Mutation 上的意外重定向(附视频链接)-React Native,Expo
- javascript - javascript | 单引号之间的字符串文本问题
- r - 将颜色渐变添加到 geom_tile 中的几个图块
- php - 如何将 MySQL 结果存储在对象数组中?
- azure-devops - 使用 YML 从 Azure Devops 中排除代理
- ios - 如何在swift中使用for循环以编程方式创建按钮
- python - 在 Python 中,有没有办法保存/转储/序列化 PDB 调试会话?