Угловой сервис в машинописи с внедрением и минимизацией зависимостей
На данный момент я пытаюсь разобраться в угловых. В настоящее время я просматриваю службы, которые также используют typescript для кода.
Теперь из образцов в Интернете я видел, что люди используют что-то вроде ниже для службы в typescript.
class Service
{
constructor( private $http: ng.IHttpService )
{
}
public MyMethod()
{
this.$http.get( "/" )
.success( null )
.error( null );
}
}
Теперь, если это уменьшено, я потеряю $http
от конструктора, а angular потребует имена переменных. Поэтому я проверил и обнаружил, что я могу использовать $injection вместо конструктора, но это также будет иметь ту же проблему минимизации.
Как люди справляются с минимизацией и angular в контексте typescript? Я изо всех сил пытаюсь найти твердые документы о том, как это следует обрабатывать. Мне кажется странным иметь эти проблемы в современной api, поэтому мне что-то не хватает где-то.
Ответы
Ответ 1
Просто используя синтаксис $inject
. например:
class Service
{
static $inject = ['$http'];
constructor( private $http: ng.IHttpService )
{
}
public MyMethod()
{
this.$http.get( "/" )
.success( null )
.error( null );
}
}
PS: Я сделал подробное видео по теме: http://www.youtube.com/watch?v=WdtVn_8K17E&hd=1
Ответ 2
В настоящее время официальный компилятор TypeScript по-прежнему не выделяет метаданные интерфейса, которые могут использоваться во время выполнения для системы DI. Существует проблема с расширяемостью emitter здесь.
Тем временем я создал образец проекта (наряду с настраиваемой версией TS-компилятора, который испускает метаданные интерфейса) приложения AngularJS 1.3, которое предоставляет Decorators для регистрации компонентов в модуле приложения и ввода зависимостей с использованием метаданных класса во время выполнения. Вы можете посмотреть здесь.