javascript - 带有可替换变量的字符串(相当于 php 的 sprintf)
问题描述
我有一个如下所示的课程
interface IParams: {
academicYearId: number;
// Other Params
};
export class myClass() {
function1() {
const url = `api/accounts/academic-year/${academicYearId}/financial-plan`;
// Function 1 Functionality
}
function2() {
const url = `api/accounts/academic-year/${academicYearId}/financial-plan`;
// Function 2 Functionality
}
function3() {
const url = `api/accounts/academic-year/${academicYearId}/financial-plan`;
// Function 2 Functionality
}
}
为了减少重复,我将 url 设为属性
interface IParams: {
academicYearId: number;
// Other Params
};
export class myClass({academicYearId}: ) {
url = `api/accounts/academic-year/:id/financial-plan`;
urlWithId = (academicYearId: number) => this.url.replace(':id', academicYearId )
function1() {
const url = this.urlWithId(academicYearId)
// Function 1 Functionality
}
function2() {
const url = this.urlWithId(academicYearId)
// Function 2 Functionality
}
function3() {
const url = this.urlWithId(academicYearId)
// Function 2 Functionality
}
}
上述方法有效,但我想知道是否有更好的方法可以处理以下两行,而不是将字符串的一部分设置为':id'
然后用 id 值替换该部分。类似于php 的 sprintf
url = `api/accounts/academic-year/:id/financial-plan`;
urlWithId = (academicYearId: number) => this.url.replace(':id', academicYearId )
解决方案
字符串插值
这是一种常见的方法,如下所示:
urlWithId = (academicYearId) => `api/accounts/academic-year/${academicYearId}/financial-plan`;
推荐阅读
- angular - *ngIf 带有计算布尔值的通用字符串表达式
- go - rpc 错误:代码 = 未实现 desc = RPC 方法未实现
- java - LibGDX applyLinearImpulse 试图实现 Gravity.... 困惑
- sql - 如何在 SELECT 子句中创建一个新列并用字符串/列表动态填充它,并满足所有条件语句的连接?
- css - 如何给margin-left与margin-right成比例?
- firebase - 从 firebase 以外的来源同时在 bigquery 中保存数据
- laravel-5.8 - 类 App\Http\Controllers\Auth\Auth\ForgotPasswordController 不存在
- wordpress - 尝试部署 Cloudonaut Wordpress Cloudformation 模板时出现“AWS ACM CerError”
- android-studio - 如何在 android studio 上修复此错误?在 android studio 3.2.1 上安装 APK 时出错
- php - 如何覆盖 magento 2 愿望清单模型?