7

变量文件:

export class VariableSettings {

   public static string_value: string = 'vikas/${id}/data';


}

其他文件。

import {VariableSettings} from './variables';


    getData(id:string ){
      console.log(`${VariableSettings.string_value}`, `${id}`); 

      // it prints vikas/${id}/data abcd11123

    }`

现在我想要像“vikas/abcd11123/data”这样的结果。那么如何在该字符串中注入 id 。

任何有关相同的建议将不胜感激。

谢谢

4

3 回答 3

10

要使用插值字符串,您需要``像在第二个片段中那样使用字符串分隔符。如果您已经使用非插值字符串来保存设置的值,则无法使用插值功能对其进行插值(您可以使用正则表达式执行替换,但这有点混乱)。

最简单的解决方案是将字段设为函数并id作为参数

export class VariableSettings {
    public static USER_BOOKINGS = (id: number) => `vikas/${id}/data`;
}
console.log(`${VariableSettings.USER_BOOKINGS(10)}`);
console.log(VariableSettings.USER_BOOKINGS(10)); // Or no interpolation at call site, not needed anymore if you just need the single value

现在USER_BOOKINGS将是一个函数,它将构造字符串所需的参数作为参数。这样,字符串所需的参数就清晰且类型安全。

于 2018-05-07T06:43:21.873 回答
2

你可以试试:

public static string_value: string = 'vikas/id/data';

let re = /id/gi; 
let newstr = `${VariableSettings.USER_BOOKINGS}`.replace(re, `${id}`);
console.log(newstr); 
于 2018-05-07T06:43:35.183 回答
1
     export class VariableSettings {
       id:number;
       public static string_value: string;


    constructor(){
      this.id = 123456
      VariableSettings.string_value = `vikas/${this.id}/data`;
}
  ngOnInit() {
    console.log(VariableSettings.string_value);
  }
    }
于 2018-05-07T06:55:55.853 回答