让我们想象一下,我有5个字符串,其中任何一个都可以填写或只是保持空白(它是基于用户输入的)
我想知道如何用逗号分隔它们。我觉得这个问题必须是微不足道的,但只有我发现它会起作用并且不是完全愚蠢的想法是:
// Create a function which return me string of arrays
public getAddress(): string[] {
let result = [];
if (this.application.applicant.city) {
result.push(this.application.applicant.city);
}
if (this.application.applicant.postalCode) {
result.push(this.application.applicant.postalCode);
}
if (this.application.applicant.state && this.application.applicant.state.name) {
result.push(this.application.applicant.state.name);
}
return result
}
// Then somewhere in ngOnInit() just call this method:
this.address = this.getAddress();
在我的tempalte里面:
<span *ngFor="let item of address; let isLast=last">
{{item}}{{isLast ? '' : ', '}}
</span>
或clasic JS方式:
<span> {{address.join(", ")}} </span>
我仍然觉得这太复杂了。我错过了一些简单的解决方案吗? 谢谢你的任何建议
答案 0 :(得分:0)
分割 字符串有一个打字稿功能。它还会删除,
this.addres = this.address.split(', '); // this is now an array instead of a string.
修改强>
我创建了一个字符串,但 newValue 中的newValue可以是任何内容。
let string = '';
if() {
string = `${string}, ${newValue}`;
}
答案 1 :(得分:0)
这里有一个示例解决方案,你可以在你的方法中创建地址的字符串并直接在你的html模板中显示它(我认为它比在数组上迭代更简单..)
在你的.ts:
address : string ;
// Create a function which return me string of arrays
public getAddress(): string {
let result = "";
if (this.application.applicant.city) {
result.push(this.application.applicant.city+",");
}
if (this.application.applicant.postalCode) {
result.push(this.application.applicant.postalCode+",");
}
if (this.application.applicant.state && this.application.applicant.state.name) {
result.push(this.application.applicant.state.name+",");
}
if (result.length !== 0 )
result.substring(0, result.length-1);
return result
}
// Then somewhere in ngOnInit() just call this method:
this.address = this.getAddress();
HTML模板中的:
<span>{{address}}</span>
希望有所帮助:)