angular - 如何在编译期间替换字符串
问题描述
我得到了准确的 '\n' ,我想在编译期间用下面的代码替换它,但是,我得到了一个错误。我该怎么做呢?
它是来自 firebase firestore 的全文对象。我也尝试过使用<pre>
和预包装,但没有任何效果。
错误是错误 TS2339:“项目”类型上不存在属性“replacingOccurrences”。
this.projectsserivice.getProjects()
.subscribe(projects => {
this.projects = projects;
this.projects.forEach(element => {
const newstr = element.replacingOccurrences('\n', '<br>');
console.log(newstr);
});
}, errmess => this.ProerrMess = <any>errmess);
解决方案
如果那是 javascript,那么replacingOccurrences
任何标准原型中都没有。
我看到那element
是一个Project
,我想它是你的一类。你确定你定义了一个名为的方法replacingOccurrences
吗?
如果要替换字符串中出现的所有文本,则可能需要使用replace。
如果 Project 是一个包含一些字符串的对象,并且您想要替换包含的每个字符串,您可以执行以下操作:
Object.keys(element)
.filter(item => typeof(item) == 'string') //only using replace on strings
.forEach(item => element.item = element.item.replace("\n", "<br/>"));
这段代码只改变第一级的孩子。
因此,如果您的项目仅包含,如您在评论中所说,3 个字符串并且没有内部对象,您的代码应该像这样工作:
this.projectsserivice.getProjects()
.subscribe(projects => {
this.projects = projects;
this.projects.forEach(element => {
Object.keys(element)
.filter(item => typeof(item) == 'string' && element.item) //only using replace on strings
.forEach(item => element.item = element.item.replace("\n", "<br/>"));
});
}, errmess => this.ProerrMess = <any>errmess);
推荐阅读
- amazon-web-services - AWS SAM CLI:sam deploy with python3.8 Image failed
- c# - 使用 powershell 将多个 nupkg 文件推送到 Github 包?
- html - 按钮不会改变背景颜色,也不会悬停
- android - 预装的 PdfViewerActivity 不适用于 SelfSigned 可信用户证书 Android 11 版本 2
- sql - 从 Teradata 到 Snowflake 的 SQL 转换,格式为 '9(13) V9(2)'
- python - pandas dataframe中float64检测问题中的nan
- swiftui - ClipShape 过渡没有任何作用
- python - ImportError: DLL load failed: 动态链接库 (DLL) 初始化例程失败;TensorFlow
- python - 从一个特定的单词到另一个单词读取python中的文件并将其放入列表中
- google-sheets - 电子表格上的 SUMIF 函数