Automatic ID generator for Angular
npm install @aloreljs/ngx-auto-id@^2.0.0 # for Angular 8
npm install @aloreljs/ngx-auto-id@^1.0.0 # for Angular 7
In whatever module you want to use the directive in:
import {NgxAutoIdModule} from '@aloreljs/ngx-auto-id';
@NgModule({
imports: [NgxAutoIdModule]
})
export class MyFancyModule {}
<div ngx-auto-id></div>
<div ngx-auto-id></div>
Outputs:
<div id="el-1"></div>
<div id="el-2"></div>
<div ngx-auto-id></div>
<div ngx-auto-id id-prefix="fancy-"></div>
Outputs:
<div id="el-3"></div>
<div id="fancy-1"></div>
You might want to replace the default "el-" prefix with your own; in this case, you should provide a value for the NGX_AUTO_ID_DEFAULT_PREFIX token:
import {NgModule} from '@angular/core';
import {NGX_AUTO_ID_DEFAULT_PREFIX} from '@aloreljs/ngx-auto-id';
@NgModule({
//... declarations etc
providers: [{
provide: NGX_AUTO_ID_DEFAULT_PREFIX,
useValue: 'my-prefix-'
}]
})
export class AppModule {
}
<div [ngx-auto-id]="false" #autoID="ngx-auto-id"></div> <!-- Must be strictly false, not falsy -->
<div [id]="autoID.toString()"></div>
<div [id]="autoID"></div> <!-- The .toString() method returns the ID -->
Outputs:
<div></div>
<div id="el-4"></div>
<div id="el-4"></div>
<label [for]="idUsername">Username:</label>
<input ngx-auto-id #idUsername="ngx-auto-id"/>