-
-
Save chl03ks/c7fbd8b7f632f5891e98854b024f0557 to your computer and use it in GitHub Desktop.
import { Pipe, PipeTransform } from '@angular/core'; | |
/* | |
* Capitalize the first letter of the string | |
* Takes a string as a value. | |
* Usage: | |
* value | capitalizefirst | |
* Example: | |
* // value.name = daniel | |
* {{ value.name | capitalizefirst }} | |
* fromats to: Daniel | |
*/ | |
@Pipe({ | |
name: 'capitalizeFirst' | |
}) | |
export class CapitalizeFirstPipe implements PipeTransform { | |
transform(value: string, args: any[]): string { | |
if (value === null) return 'Not assigned'; | |
return value.charAt(0).toUpperCase() + value.slice(1); | |
} | |
} |
It should be: return value.charAt(0).toUpperCase() + value.slice(1).toLowerCase();
@hisankaran Thanks for the addition. (y)
Now there is a titlecase
in Angular angular/angular#13324
@agladkov - Just what I was looking for. Thanks!
@vijay-pratap you don't need a custom pipe for that as Angular already has one for it. See @agladkov 's comment
Line 17:
Use
if (!value) return null;
Instead of
if (value === null) return 'Not assigned';
Angular has 'titlecase'.
For ex:
envName | titlecase
When used with interpolation, avoid all spaces like
{{envName|titlecase}}
To all those referring to the titlecase pipe in Angular. It is not the same.
For example:
let str = 'fileFormat';
{{str|titlecase}} = 'Fileformat'
{{str|capitalizefirst}} = 'FileFormat'
Notice that titlecase is making every other letter of a word than the first lowercase, while capitalizefirst is only capitalizing the first letter and leaving the rest of the string intact, which is what I need in my case.
thanks bro
Line 17:
Use
if (!value) return null;
Instead of
if (value === null) return 'Not assigned';
Nope, that would empty the 0 input.
Use
if (value === null || value === undefined) {
return '';
}
Thanks for the pipe! Can I use this in my own project?