评估正确的环境

时间:2019-02-19 13:20:51

标签: javascript angular eval

在Angular中,我的eval()在正确的上下文中无法正常工作。

我只想用eval('console.log(this.sharedservice.var1)');之类的简单东西进行测试,但是说Cannot read property 'sharedservice' of undefined,所以它不知道this是什么。

当我尝试执行解决(0, eval)(script);问题的this时,它说Cannot read property 'var1' of undefined。所以知道它不知道sharedservice是什么。但是在组件的构造函数中,我确实有private sharedservice: SharedService,。如何帮助eval查看组件的构造函数值?

请不要建议不要使用eval,请耐烦此论点。

1 个答案:

答案 0 :(得分:0)

您不应使用eval。这是您将从很多人那里听到的。如果您仍然想使用eval,可以尝试以下操作:

export class BadIdea {
  constructor(private sharedservice: SharedService) {
    ((evalThis) => eval(evalThis)).call(this, 'console.log(this.lm.test)');
  }
}