嵌套的ES6模板文字不返回任何值

时间:2017-06-30 14:25:36

标签: javascript ecmascript-6

我尝试使用eval将一些javascript代码作为字符串执行。我遇到的问题是字符串(它是模板文字)具有嵌套的模板文字,例如$ {} obj.height。没有执行的。

如何执行此操作并使模板文字返回其值?

let code = `
  let obj = {
  height: 150,
  width: 30,
  top: 10,
  left: 30,
  position: "absolute"
  }

 $(pageContainer).append(
   <iframe type="text/html"
       style="height:${obj.height}; width:${obj.width};top:${obj.top}; left:${obj.left}; position:${obj.position};"
       src="dummy url"
       frameborder="0">
           </iframe>
 );

 `;

 eval(code);

1 个答案:

答案 0 :(得分:2)

我猜你想要这样的东西:

const code=`let x = {foo: 42}; console.log(${`x.foo`})`;

eval(code);