Вы правы, немного неправильно выразился.
Просчитать положение и размеры всех элементов за один проход получится, только если «элементы, встречающиеся в потоке позже, не влияют на позицию и размеры уже пройденных элементов».
Благодарю вас за вопрос
Обучаясь в основном по англоязычным ресурсам, лично для меня «101» стало достаточно естественным, как и многое в айти пришедшее к нам из-за рубежа и используемое в повседневной жизни.
Если я правильно вас понял, то есть необходимость в обработке ошибок внутри кастомного контрола
Для этого вам нужна ссылка на FormControl из внешней формы
Сделать это достаточно просто с DI (и долей грязной черной магии)
в классе кастом контрола инжектим:
constructor(
@Optional() @Self() public control: NgControl
) {
if (control) {
control.valueAccessor = this; // иначе ошибка Uncaught Error: Template parse errors: Cannot instantiate cyclic dependency! NgControl
}
}
и в метаданных убираем провайдер NG_VALUE_ACCESSOR. Взято отсюда.
Добрый день!)
Спасибо за ваш комментарий!
Array.prototype[Symbol.iterator] действительно переписывает существующую в Array.prototype реализацию итератора, но в статье мы так не делаем =)
В данной статье я хотел показать как мы можем написать свою сущность которая реализует Symbol.iterator, так же как javascript в Array.prototype, String.prototype и так далее
+ показать как использовать конструкции языка для взаимодействия с нашей сущностью.
Как заметил limitofzero, это действительно хороший пример полиморфизма)
Спасибо за интересную статью! Действительно I wish I knew this before...)
Есть вопрос по части DI
Вы говорите:
С местом разобрались, перейдем к самому механизму. Если мы просто указали provideIn: root в сервисе, это будет эквивалентно следующей записи в модуле:
@NgModule({
// ... здесь другие свойства модуля
providers: [{provide: JokerService, useClass: JokerService}],
})
export class JokesModule {}
Но в то же время чуть выше есть выражение:
Во все приложение — указываем provideIn: ‘root’ в самом декораторе сервиса.
Правильно понимаю что в вашем примере JokesModule является рутовым? По дефолту рутовым является AppModule, если не указано другое.
Не критично, но может ввести в некоторое заблуждение)
Просчитать положение и размеры всех элементов за один проход получится, только если «элементы, встречающиеся в потоке позже, не влияют на позицию и размеры уже пройденных элементов».
Благодарю вас за вопрос
Обучаясь в основном по англоязычным ресурсам, лично для меня «101» стало достаточно естественным, как и многое в айти пришедшее к нам из-за рубежа и используемое в повседневной жизни.
Благодарю вас за полезный комментарий:)
Действительно была неточность, вы правы
Статью поправил.
Если я правильно вас понял, то есть необходимость в обработке ошибок внутри кастомного контрола
Для этого вам нужна ссылка на FormControl из внешней формы
Сделать это достаточно просто с DI (и долей
грязнойчерной магии)в классе кастом контрола инжектим:
и в метаданных убираем провайдер NG_VALUE_ACCESSOR. Взято отсюда.
Спасибо за ваш комментарий!
Array.prototype[Symbol.iterator] действительно переписывает существующую в Array.prototype реализацию итератора, но в статье мы так не делаем =)
В данной статье я хотел показать как мы можем написать свою сущность которая реализует Symbol.iterator, так же как javascript в Array.prototype, String.prototype и так далее
+ показать как использовать конструкции языка для взаимодействия с нашей сущностью.
Как заметил limitofzero, это действительно хороший пример полиморфизма)
Благодарю за полезный комментарий)
Статью поправил
Есть вопрос по части DI
Вы говорите:
Но в то же время чуть выше есть выражение:
Правильно понимаю что в вашем примере JokesModule является рутовым? По дефолту рутовым является AppModule, если не указано другое.
Не критично, но может ввести в некоторое заблуждение)