Что происходит то?
А зачем шпиона на каждый объект?
Помогите пожалуйста, я на это уже час времени угробил, почему не адекватно себя ведет деректива кто шарит?
как метод то выглядит?
ребят нормально так писать?
А через input при повторном открытии данные не приходят разве?
А как можно вот эти два контейнера объединить в один?
Откуда он его получает?
С точки зрения кода, откуда он его берёт?
Вопрос можно ли в этом коллбеке эти все запросы перенаправлять на другой хост?
ребят, есть вариант, как в дочерний компонент передать Observable из родителя?
А почему без onChanges?
Почему родительский темплейт успешно устанавливает disabled и value, но не выдаёт ничего при подписке на valueChanges?
Как проверить reducer?
А зачем шпиона на каждый объект? Нельзя объект, в который сложить другие и в последний пихнуть уже метод и на метод уже шпиона?
[exclude]=»‘li.select-all-regions'»
(clickOutside)=»close($event)»
>
<ul class=»regions»>
<li
(click)=»selectAllRegions()»
class=»select-all-regions»>
Выбрать всё
</li>
</ul>
</div>
Вот такой шаблон, при клике на Выбрать всё не должен срабатывать clickOutside, но он срабатывает
Помогите пожалуйста, я на это уже час времени угробил, почему не адекватно себя ведет деректива кто шарит?
как метод то выглядит? который закрывает все?
не совсем понял, что ты имеешь ввиду
Вообще код выглядит странно.
const swiperRef = { } …;
spyOn(dashboardSlider).and.return( { swiper: swiperRef: swiperRef });
const spy = spyOn(swiperRef, ‘disable’).callThrough();
expect(const).toHaveBeenCalled();
Там просто консоль лог и все


ребят нормально так писать? если приходит поле с типом, и мне не нужно его в конструкторе, так как поле приходит из вне
сделай Observable его) и через пайп получай) Ну или спасет *ngIf=»field», но лучше конечно наблюдаемым сделать его
окей, спасибо
Храните данные в сервисе
А через input при повторном открытии данные не приходят разве?

А как получить? В компоненте сделать пайп, или как-то в шаблоне можно получить

Всем привет. А как можно вот эти два контейнера объединить в один?
только если поток свой создать от tableData$, где ты проверишь и на null и на length
спасибо
но это в целом будет декларативнее
родитель: public wait$: Observable<boolean> = of(true); <child [wait]=»wait$ | async»></child> Дочерний: @Input() wait: boolean; Можешь через input так же прямо Observable передавать и с ним возиться уже в дочернем, wait просто для примера, что в голову первое пришло
Спасибо, иду разбиратьсч
spyOn(dashboardSlider).and.return( { swiper: swiperRef: swiperRef });
const spy = spyOn(swiperRef, ‘disable’).callThrough();
expect(const).toHaveBeenCalled();
так тоже не работает

Я думаю, что проблема в том, что компонент ходит в другой DashboardSlider. Откуда он его получает? Реальный компонент
page->DashboardSlider->swiper
С точки зрения кода, откуда он его берёт? Из конструктора?
а в нем уже
@ViewChild(‘swiper’, { static: false }) swiper?: SwiperComponent;
а в нем уже
@ViewChild(‘swiper’, { static: false }) swiper?: SwiperComponent;
Ну так вот. То, что в тесте замокали — компоненту похер. Смотрите как мокать viewChild. Ну я так думаю 🤔
все запросы начинающиеся с /api буду обрабатываться в этом коллбеке:
server.get(‘/api/**’, (req, res) => {
res.status(404).send(‘data requests are not yet supported’);
});
Вопрос можно ли в этом коллбеке эти все запросы перенаправлять на другой хост?
сорян, я тебя тут обманул. Без хука ngOnChanges не получится. https://coderoad.ru/49662341/Как-передать-значение-observable-в-Input-Angular-4
— CodeRoad — coderoad.ru
Условно DynamicFormService.getAnswers(‘CAR00PR’) это asynchronous (probably он и есть), с помощью async Pipe , чтобы передать асинхронный результат находится на правильном пути, но вы не можете…
А зачем observable? Не проще через async pipe данные уже?
та вроде так и передаю)
А почему без onChanges?
Я просто на ангулар с реакта пересел, и хз как правильно передавать, мне из стора приходит обект в родителя, а родитель передает его чилдрену, мне обект сделать обсервабл и гуглить как передавать обсервабл?
потому что это одно известное решение 😁 Интересно, есть ли более красивое решение
Я нагуглил статью на эту тему, кажется это даже подойдет для моего когда
https://levelup.gitconnected.com/why-angular-input-setter-is-only-being-fired-once-53f1a66b1716
Examine various approaches to pass data between components


Всем привет. Подскажите плиз, может кто сталкивался, в проекте используется либа copass-mixinss. Подняли версию angular =>V12 и при билде выкидывает предупреждения. Как заигнорить предупреждения, и что тут в синтаксисе значит * ?
@Component({
selector: ‘ui-input’,
templateUrl: ‘./input.component.html’,
styleUrls: [‘./input.component.scss’],
changeDetection: ChangeDetectionStrategy.OnPush,
providers: [
{
provide: NG_VALUE_ACCESSOR,
useExisting: forwardRef(() => InputComponent),
multi: true,
},
],
})
export class InputComponent implements ControlValueAccessor, OnInit {
@ViewChild(‘input’, { static: true }) input!: ElementRef<HTMLInputElement>;
control = new UntypedFormControl();
value: unknown;
onChange: unknown;
onTouch: unknown;
constructor(private cdr: ChangeDetectorRef) {}
ngOnInit(): void {
this.control.valueChanges
.pipe(tap((value) => this.registerOnChange(value)))
.subscribe(() => this.cdr.detectChanges());
}
registerOnChange(fn: unknown): void {
this.onChange = fn;
}
registerOnTouched(fn: unknown): void {
this.onTouch = fn;
}
writeValue(value: unknown): void {
this.value = value;
this.control.setValue(value, { emitEvent: false });
}
setDisabledState(disabled: boolean) {
disabled ? this.control.disable() : this.control.enable();
}
focus() {
this.input.nativeElement.focus();
}
}
Поставить breakpoint в него. Показать код
оно все-таки работает))