亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何為cms使用模板文字?

如何為cms使用模板文字?

catspeake 2021-06-21 13:01:53
我想用我的“mini-cms”用他們自己的語言來問候用戶。所有字符串都存儲為“文本” - 不可能添加反引號。因此我必須: 1st。將我的 cms 字符串轉換為模板字符串("text ${value}" => text ${value}) 2nd。將值添加到此模板字符串中我怎樣才能做到這一點?myFunction (language) {   const name = "Tim";   // call to the cms for translation      // returns "Hi ${name}, how are you?";   const textResponse = getTranslation(language);   // How to convert textResponse into a template string and fill in ${name}    // with "Tim"?   const greetUserInHisLanguage = ????    return greetUserInHisLanguage;}
查看完整描述

3 回答

?
翻過高山走不出你

TA貢獻1875條經驗 獲得超3個贊

模板字符串是一種文字 - 這意味著,它們僅在編譯步驟中可用(包括由eval和朋友編譯,如另一個答案所示,該答案也警告不要使用它們)。


模板字符串的流式傳輸是一個 XY 問題。相反,考慮問題本身,您希望通過填充插槽來翻譯模板。您可以使用正則表達式來做到這一點,只要您沒有在插槽內進行計算(就像使用模板字符串那樣)。您還可能希望將局部變量更改為對象屬性,以便可以通過名稱以編程方式訪問它們,而無需eval.


       const context = { name: "Tim" };

       const textResponse = "Hi ${name}, how are you?";

    

       const greetUserInHisLanguage =

           textResponse.replace(/\${(.*?)}/g, (_, name) => context[name]);


       console.log(greetUserInHisLanguage);

如果您需要更復雜的東西,請考慮使用現有的模板庫,如 Handlebars。


查看完整回答
反對 回復 2021-06-24
?
侃侃無極

TA貢獻2051條經驗 獲得超10個贊

試試這個,你可以使用eval()


myFunction (language) {

   const name = "Tim";


   // call to the cms for translation

      // returns "Hi ${name}, how are you?";

   const textResponse = getTranslation(language);


   // How to convert textResponse into a template string and fill in ${name} 

   // with "Tim"?

   const greetUserInHisLanguage =eval('`'+textResponse+'`') // use eval()


   return greetUserInHisLanguage;

}

工作小提琴-


function myFunction(language) {

  const name = "Tim";


  // call to the cms for translation

  // returns "Hi ${name}, how are you?";

  const textResponse = getTranslation(language);


  // How to convert textResponse into a template string and fill in ${name} 

  // with "Tim"?

  const greetUserInHisLanguage = eval('`'+textResponse+'`') // use template literals here


  return greetUserInHisLanguage;

}


function getTranslation(language) {

  return "Hi ${name}, how are you?"


}



console.log(myFunction("spanish"))

值得注意

不推薦使用 eval(),因為它容易受到注入攻擊


查看完整回答
反對 回復 2021-06-24
  • 3 回答
  • 0 關注
  • 145 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號