Skip to content

Instantly share code, notes, and snippets.

/*
*ngFor="let c of oneDimArray | sortBy:'asc'"
*ngFor="let c of arrayOfObjects | sortBy:'asc':'propertyName'"
*/
import { Pipe, PipeTransform } from '@angular/core';
import { orderBy } from 'lodash';
@Pipe({ name: 'sortBy' })
export class SortByPipe implements PipeTransform {
<!-- const cars=['Audi','Merc','BMW','Volvo','Tesla'] -->
<ul>
<li *ngFor="let car of cars">{{car}}</li>
</ul>
const reMapAll=(custom_schema,missingKeys,data:any)=>{
const newArray=[]
for(let d of data){
newArray.push(createObject(custom_schema,missingKeys,d));
}
return newArray;
}
const createObject=(custom_schema,missingKeys,data)=>{
const newObj=Object.create({});
// add available keys
for(let key of Object.keys(custom_schema)){
const k=custom_schema[key];
newObj[k]=data[key];
}
// add missing keys
for(let k of missingKeys){
newObj[k]='';
// array
const data=[
{pid:1000,pname:'test',pimg:'demo',pCat:'123'},
{pid:1001,pname:'test 1',pimg:'demo 1',pCat:'123'},
{pid:1002,pname:'test 2',pimg:'demo 2',pCat:'123'},
];
// single object
const data={pid:1000,pname:'test',pimg:'demo',pCat:'123'}
const product=['productId','productName','productStock','productImage','productCost'];
const schema={pid:'productId',pname:'productName',pimg:'productImage',pCat:'productCategory'};
// using lodash library
const reMap=(custom_schema,conversion_schema,data)=>{
const actualKeys=conversion_schema;
const availableKeys=_.values(custom_schema);
const missingKeys=_.difference(actualKeys,availableKeys);
if(!_.isArray(data))
return createObject(custom_schema,missingKeys,data);
else
return reMapAll(custom_schema,missingKeys,data);
}
import { Directive } from '@angular/core';
import { NG_VALIDATORS } from '@angular/forms';
import { zipCodeValidator } from '../forms/validators';
@Directive({
selector: '[appZipCode][ngModel]',
providers: [
{
provide: NG_VALIDATORS,
useValue: zipCodeValidator,
multi: true
<div *ngIf="addressObj.get('pincode').touched">
<small *ngIf="addressObj.get('pincode').hasError('required')">Pincode is required</small>
<small *ngIf="addressObj.get('pincode').hasError('zipCode')">
allowed pincode is {{addressObj.get('pincode').getError('zipCode').validCode}}
</small>
</div>