#angular
Вопрос:
Мы работаем над расширением JS framework, которое дополняет Angular. Мы разрабатываем наш собственный набор компонентов и API, который в большей степени зависит от метаданных. Идея состоит в том, чтобы построить наш код API таким образом, чтобы уменьшить зависимость кода, переписанного непосредственно в Angular, чтобы проблема обратной совместимости при обновлении была менее серьезной.
Поэтому я не хочу напрямую использовать конкретные директивы Angular в коде, например: «*ngFor», а вместо этого использовать что-то вроде «*для».
Возможно ли это вообще? могу ли я изменить страницу директивы в файле конфигурации? или я могу написать свои собственные директивы, которые работают аналогично угловым?
Ответ №1:
Да, это возможно. Вы можете создавать свои собственные директивы, которые могут расширять основные директивы.
Например, для того, чтобы использовать *for
директиву вместо *ngFor
вы можете использовать что-то вроде:
import { Directive, NgIterable, Input } from '@angular/core';
import { NgForOf } from '@angular/common';
@Directive({
selector: '[for][forOf]'
})
export class ForDirective<T, U extends NgIterable<T> = NgIterable<T>>
extends NgForOf<T, U> {
@Input()
set forOf(ngForOf: Uamp;NgIterable<T>|undefined|null) {
this.ngForOf = ngForOf;
}
}
затем в шаблоне вы можете свободно писать:
<div *for="let item of [1,2,3]">{{ item }}</div>