Предоставление eval правильного контекста - PullRequest
0 голосов
/ 19 февраля 2019

В Angular my eval() не работает в правильном контексте.

Я просто хочу проверить это с чем-то простым, например eval('console.log(this.sharedservice.var1)');, но говорит Cannot read property 'sharedservice' of undefined, поэтому он не знает, что this is.

Когда я пытаюсь сделать (0, eval)(script);, который решает проблему this, тогда он говорит Cannot read property 'var1' of undefined.Так знай, что не знает, что такое sharedservice.Но в конструкторе моего компонента у меня есть private sharedservice: SharedService,.Как помочь eval увидеть значения конструктора моего компонента?

Пожалуйста, не предлагайте не использовать eval, так устал от этого аргумента.

1 Ответ

0 голосов
/ 19 февраля 2019

Не следует использовать eval.Это то, что вы услышите от многих людей.Если вы все еще хотите использовать eval, вы можете попробовать это:

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