него с помощью @Input Array передается массив строк от родителя.
Внутри компонента ребенка в методе ngOnInit в этот массив добавляется элемент.
Но получается так что данные от родителя прилетают в ребенка намного позже по @Input чем, происходит действие в ngOnInit. Массив в ребенке этими данными перезатираеться и тот элемент который добавлялся в самом ребенке не добавляется.
Я перепробовал и более поздние ЛайфСайкл Хуки, но все ровно они все отрабатывают рано и происходит тоже самое. Или может тут Setter только поможет?
Привет. Может сервис создать и там к файлу обращаться? Так меньше запутанности будет мне кажется. И работать 100% будет, так как к одной ссылке будут обращаться.
Если имеено внутри компонента то самое простое сеттер конечно Или onchange смотреть, но зачем?
я бы конечно сначала на код взглянул но если делать прямолинейно с оверхедом то сделать input как геттер который фигачит данные в сабжект, и отдельно еще сделать сабжект для результата от ngOnInit, а где надо потом смержить
Вообще насколько я помню, сначала инициализируется родитель, потом дочерний. Конструктор - инпуты, переменные - и далее по списку. Если в инпуте не момент инициализации нет массива - то работать ваш случай не будет. Может в родителе инициализировать в переменной пустой массив, работать с ним через операции добавления / удаления, и тогда в дочернем на момент его инициализации будет ссылка на тот самый массив. У вас как это сделано сейчас? Переменная чему равна при объявлении в родителе?
если ссылку не менять то CD пойдёт курить бамбук и ничего делать не будет
должен быть всегда OnPush
Ну знаете ли... Не у 100% он
эт уже не наши проблемы что нет у всех
Ок, спасибо за совет. ну код такой.
как потом юзается selectList в шаблоне?
SelectList без кавычек...
вообще честно, то я бы так сделал: как сказал ранее инпут сделать геттером который пушит в сабжект, NgModel переделать на реактивные формы, и высрать observable конечный типа combineLatest(selectList$, filterControl.valueChanges)
Ок понял спасибо!
Обсуждают сегодня