Как сохранить это ключевое слово указывает на объект окна в веб-пакете? - PullRequest
0 голосов
/ 30 июня 2019

Я преобразовал приложение AngularJS в es6 с помощью веб-пакета и синтаксиса импорта / экспорта.

Все отлично работает, кроме this ключевого слова.

Поскольку webpack упаковывает весь мой код во время компиляции в функцию (модули) iife, ключевое слово this становится неопределенным в таких функциях, как:

.controller( …, function() {
 ...
 this.myFunc = function() {

  someFunction().then(function(data) {
   this.someVar = data;
   // this === window
  });

 });

});

В обычном угловом приложении без связывания получается window Объект.

Я не хочу вносить большие изменения, кроме работы с веб-пакетом (у меня есть много мест кода, в которых это есть). Есть ли способ сохранить this для указания window объекта в веб-пакете?

1 Ответ

2 голосов
/ 30 июня 2019

Webpack заставляет код использовать «строгий режим».Проблема возникает из-за использования операторов ES6 import.

Из документов:

Статический оператор импорта используется для импорта привязок, которые экспортируются другим модулем.Импортированные модули находятся в строгом режиме независимо от того, объявляете ли вы их как таковые или нет.

Для получения дополнительной информации см.

...