Size: a a a

Angular - русскоговорящее сообщество

2021 June 19

ФІ

Федор Ігор in Angular - русскоговорящее сообщество
Народ почему когда я нажимаю на кнопку addUser
reset форми  срабатывает только з 2 нажатия
источник

OP

Oleg P in Angular - русскоговорящее сообщество
спасибо! Отличная идея
источник

ФІ

Федор Ігор in Angular - русскоговорящее сообщество
источник

ФІ

Федор Ігор in Angular - русскоговорящее сообщество
хотя консульская з 1 срабатывает  з 1 клику   нихера не понимаю
источник

RZ

Roman Zinchuk in Angular - русскоговорящее сообщество
Федор, скинь код модалкомпонент
источник

ФІ

Федор Ігор in Angular - русскоговорящее сообщество
@Input() modal: boolean
 @Input() isBtn :boolean
 @Output() isBtnHide = new EventEmitter()
 @Output() array  = new EventEmitter()
 @Input() index : number
 arrCars: Array<ICars> = []

 

 formCars =  this.formBolider.group({
   lastName: new FormControl('' ,Validators.required),
   name: new FormControl('' ,Validators.required),
   patronymic : new FormControl('',Validators.required),
   number: new FormControl(''),
   brand:new FormControl(''),
   modal : new FormControl(''),
   year: new FormControl('')

 })

 constructor(
   private userServices : UsersService,
   private formBolider :FormBuilder,
   ) { }

 ngOnInit(): void {
     this.getCars()
   
 }
 ngOnChanges():void {
   this.edit()
   
 }

 edit():void {
   const cars = this.arrCars.find(el => el.id  === this.index+1)
   this.formCars.patchValue({...cars})
     
 }


 getCars():void {
   this.userServices.getUsers().subscribe(res=> {
     this.arrCars = res
     this.array.emit(this.arrCars)
   
     
   })
 }

 modalHide( ):void {
   this.isBtnHide.emit()
 }

 addUser():void{

   const {lastName,name,patronymic,number,brand,modal,year} = this.formCars.value
   const cars: ICars =  new Cars(1,lastName,name,patronymic,number,brand,modal,year);

   
   if (this.arrCars.length > 0) {
     
     cars.id = this.arrCars.slice(-1)[0].id + 1;
   }
   this.userServices.addUSers(cars).subscribe(res=>{
    this.getCars()
   })
   
   this.formCars.reset()
 
 }
источник

RZ

Roman Zinchuk in Angular - русскоговорящее сообщество
Это не весь код, там onpush стоит ?
источник

ФІ

Федор Ігор in Angular - русскоговорящее сообщество
весь
источник

ФІ

Федор Ігор in Angular - русскоговорящее сообщество
я з дочерний компоненти питаюся реснуть форму на батьку
источник

ФІ

Федор Ігор in Angular - русскоговорящее сообщество
вот батька код
источник

ФІ

Федор Ігор in Angular - русскоговорящее сообщество
modal: boolean  = false
 isdisabledBtn :boolean = true
 isbtn: boolean
 

 arrayUSers: Array<any> = []
 curentID: number;

 @ViewChild(ModalComponent , {static: false}) private modalComponent :ModalComponent

 constructor(private users:UsersService) { }

 ngOnInit(): void {
 
 }
 
 index(index):void {
   this.curentID = index
   this.isdisabledBtn  = false
 
 }

 

 add(event ):void {
   this.modal = false
 }

 load(array : Array<ICars>):void {
   if(array) {
     this.arrayUSers = array
     
   }
 }

 addUser():void {
   console.log('1');
   
   this.modalComponent.formCars.reset()
   this.modal = true
   this.isbtn = true
 
   
 }

 viewer():void {
   this.modal = true
   this.isbtn = false
   

 }
источник

RZ

Roman Zinchuk in Angular - русскоговорящее сообщество
У меня такая фигня возникала при использовании onpush, но поскольку вы скинули "весь" код и там небыло onpush, то я хз чем вам помочь
источник

ФІ

Федор Ігор in Angular - русскоговорящее сообщество
у меня нету onpush
источник

ФІ

Федор Ігор in Angular - русскоговорящее сообщество
И я вот не понимаю почему так
источник

ФІ

Федор Ігор in Angular - русскоговорящее сообщество
на дочерней компоненте где  форма норм все , а вот на родителе  почему то   з 2клику
источник

RZ

Roman Zinchuk in Angular - русскоговорящее сообщество
Попробую в чилде тригерить событие, а родитель подпишется и ресет формы сделает
источник

RZ

Roman Zinchuk in Angular - русскоговорящее сообщество
Родитель не должен контролироватся чилдом напрямую
источник

ФІ

Федор Ігор in Angular - русскоговорящее сообщество
че на верх закинуть форму? потом инпутом в низ скинуть?
источник

RZ

Roman Zinchuk in Angular - русскоговорящее сообщество
У чилда оутпут добавь типа ресетед, а у перента подпишись на это и ресеть там форму
источник

RZ

Roman Zinchuk in Angular - русскоговорящее сообщество
Либо вручную вызови change detection, но это так себе вариант
источник