【问题标题】:Giving eval the correct context给 eval 正确的上下文
【发布时间】:2019-02-19 22:01:13
【问题描述】:

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

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

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

请不要建议不要使用eval,对这种说法感到厌倦。

【问题讨论】:

标签: javascript angular eval


【解决方案1】:

您不应使用eval。是你会从很多人那里听到的。如果你还想用eval,可以试试这个:

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

【讨论】:

    猜你喜欢
    • 2011-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-15
    • 2018-11-07
    相关资源
    最近更新 更多