Обновленный ответ : Вы можете скопировать и вставить директиву NgIf
из Angular GitHub, и единственное, что вам нужно сделать, это изменить имя NgIfContext#ngIf
, чтобы оно соответствовало вашему имени, например, директивы if:
export class NgIfContext {
public $implicit: any = null;
public appCustomIf: any = null;
}
Затем измените имена всех Input()
соответственно, чтобы они также соответствовали имени вашей директивы.С этим ключевое слово as
будет работать.См. StackBlitz demo.
EDIT : в качестве дополнительной ссылки вы можете следовать этим коммитам в # 15025 запрос на получение.чтобы увидеть, как они реализовали ключевые слова as
в NgIf
и NgForOf
.Вкратце:
- В a63d57f они добавили ключевое слово
as
в синтаксический анализатор. - В 203ee65 и ef93998 они преобразовали
NgIf
и NgForOf
соответственно, чтобы использовать синтаксис as
. - Наконец, в 71d43db они выставили
NgForOfContext
, NgIfContext
и сделали NgForOf
для использования NgForOfContext
.
Также, если вам интересно, вы можете увидеть, как они реализовали let
в NgIf
, выполнив # 13297 запрос на получение.
Этот может помочь вам понять, что происходит внизу.
Оригинальный ответ: Если вам на самом деле все равно *Синтаксис 1062 *, и вам нужна только рабочая переменная шаблона, это сделает работу.
*appCustomIf="test$ | async; let result"
Работает с копиями и вставками ngIf
из Angular github.См. StackBlitz демо.