Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 11.08.2017, 18:02
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,012

Да.
Ответить с цитированием
  #22 (permalink)  
Старый 11.08.2017, 18:09
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,012

Сообщение от Shitbox2
Ну и
newConstructor.prototype = Object.create(Target.prototype);
newConstructor.prototype.constructor = Target;

так ли нужны?
тут правильнее всего так:
newConstructor.prototype = Object.create(Target.prototype);
newConstructor.prototype.constructor = newConstructor;
быть может, это и подразумевалось, только автор опечатался
Ответить с цитированием
  #23 (permalink)  
Старый 11.08.2017, 18:20
Профессор
Отправить личное сообщение для Shitbox2 Посмотреть профиль Найти все сообщения от Shitbox2
 
Регистрация: 04.10.2010
Сообщений: 571

Всё равно декоратор не работает нормально. Если делаю так, то всё ОК
function decorator(target) {
  return target
}

@decorator
class MyClass {
  public constructor( @Inject(HttpClient) protected http: HttpClient) {}
}


Но как только вместо target возвращаю в декораторе новый конструктор, DI перестает работать (сервисы не инжектятся)

P.S. Сделал планк https://embed.plnkr.co/opnY3y/

Последний раз редактировалось Shitbox2, 11.08.2017 в 20:37.
Ответить с цитированием
  #24 (permalink)  
Старый 13.08.2017, 17:28
Профессор
Отправить личное сообщение для Shitbox2 Посмотреть профиль Найти все сообщения от Shitbox2
 
Регистрация: 04.10.2010
Сообщений: 571

Читал документацию по декораторам и смотрел как они в ES транспилятся - ничего сложного)

На stackoverflow ответили: https://stackoverflow.com/questions/...46606#45646606

Тоже пробовал что-то подобное, но оказывается нужно было newCtor делать именованной, а в конце все-таки использовать newConstructor.prototype = Object.create(target.prototype), а не newConstructor.prototype = target.prototype;

Видимо, Ангуляр как-то по-особенному свои зависимости инжектит. Вот в его исходниках так и не разобрался - слишком муторный код
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать tooltip для ячейки таблицы? khusamov ExtJS 7 14.04.2017 10:52
Как сделать выполнение ф-ции только для видимых объектов на экране? Randomizer jQuery 6 21.01.2013 16:06
как сделать событие для списка node. DimaRogov Events/DOM/Window 5 18.09.2011 16:52
Как сделать выпадающее меню voloxa89 jQuery 7 20.08.2011 11:27
Как сделать функцию типа toDataUrl для рисунка в ie6 ? Олег Общие вопросы Javascript 2 14.09.2008 00:06