Skip to content

Instantly share code, notes, and snippets.

@pawankkumawat
pawankkumawat / signals.ts
Last active March 23, 2024 04:26
Declare Signals
// Declaring signals Start
let quantity = signal<number>(1)
let numberList = signal([1,2,3,4])
let vehicle = signal<Vehicle>({'id':'1234',VIN:'MH12VZ0123'})
let vehicleArr = signal<Vehicle[]>([])
// Declaring Computed Signals
let price = computed(()=>{
return quantity()*1000
})
@pawankkumawat
pawankkumawat / gist:f1e52e97afeab696379045991debc099
Last active December 30, 2023 08:45
singals- to-avoid-memoryleak
import { takeUntilDestroyed,toSignal} from '@angular/core/rxjs-interop';
import { CommonModule } from '@angular/common';
@Component({
selector: 'app-unsub-observable-two',
standalone: true,
imports: [CommonModule],
template:`<p *ngIf="timerSignal()">unsub-observable-two works!</p>`
})
export class UnsubObservableTwoComponent {
import { takeUntilDestroyed} from '@angular/core/rxjs-interop';
import { CommonModule } from '@angular/common';
@Component({
selector: 'app-unsub-observable-two',
standalone: true,
imports: [CommonModule],
templateUrl: './unsub-observable-two.component.html',
})
export class UnsubObservableTwoComponent{
@pawankkumawat
pawankkumawat / .ts
Created December 22, 2023 12:37
exhaustMap-rxjs-operator
sub = new Subject<boolean>();
ngOnInit(): void {
this.subscribeSave();
}
subscribeSave(){
this.sub.asObservable().pipe(
exhaustMap((x)=>this.dataService.saveData(this.form.getRawValue()))
)
@pawankkumawat
pawankkumawat / .ts
Created December 21, 2023 07:48
update-route-for-deactivate
{
path: 'bad/:id',
component: BadComponetDesignComponent,
canDeactivate:[candeactivateGuard]
},
@pawankkumawat
pawankkumawat / .ts
Created December 21, 2023 07:42
candeactivate-interface
export class BadComponetDesignComponent implements Candeactivate {
form!: UntypedFormGroup;
candeactivate():boolean{
return this.form.touched;
};
}
@pawankkumawat
pawankkumawat / .ts
Created December 21, 2023 07:35
can-deactivate-route-guard
export interface Candeactivate {
candeactivate:()=>boolean
}
export const candeactivateGuard: CanDeactivateFn<Candeactivate> = (
component: any,
currentRoute,
currentState,
nextState
) => {
concat(...arr).subscribe((response: any) => {
//handle response
}, noop, // handle error
() => {
// refresh content
});
let arr = []
validations.forEach(a => {
let model = {
orderId: this.orderId,
SubOrderId: this.SubOrderId
};
arr.push(this.validationService.sendValidations(model)); // sendValidations returns an observable
});
@pawankkumawat
pawankkumawat / lazy-loading-module-dialog.ts
Created October 15, 2022 08:41
Load Loading of component in dialog
constructor(public dialog: MatDialog){}
async openDialog(data: any) {
await import(
/* webpackPrefetch: true */
'../../module-folder/module-name.module'
);
let dialogRef = this.dialog.open(YourComponent, {
panelClass: 'my-class',
data: data,