How to get started easily with Syncfusion Angular 7 Dropdown List?
A quick start project that helps you to create an Angular 7 Dropdown List with a minimal code configuration.
Angular 7 Dropdown List
The following section explains the steps required to create a simple Angular 7 Dropdown List component.
Project pre-requisites
Make sure that you have the compatible versions of Angular in your machine before starting to work on this project.
- Node.js (latest version)
- Angular 7+
- Angular CLI
- TypeScript 2.6+
- Visual studio code for editor
Introduction
The Angular 7 Dropdown List used in this project is created from the Syncfusion ej2-angular-dropdowns package. You can simply define it as <ejs-dropdownlist> within the template.
Dependencies
Before starting with this project, the Angular 7 Dropdown List requires to add the Syncfusion ej2-angular-dropdowns package from npmjs, which are distributed in npm as @syncfusion scoped packages.
Creating Angular project
To create the Angular project using the Angular CLI tool, follow the steps.
- Install the Angular CLI application in your machine.
npm install @angular/cli@7.0.4
If you would like to follow and run the application in Angular6 or Angular5 or Angular4, you need to replace the CLI command version number with the corresponding angular version number.
npm install -g @angular/cli@<CLI VERSION>
- Now create a new Angular project by using the command ng new and navigate to that folder.
ng new <project name> cd <project name>
- Install the ej2-angular-dropdowns package through the npm install command.
npm install @syncfusion/ej2-angular-dropdowns --save
Adding Angular 7 Dropdown List
You can add the Angular 7 Dropdown List component by using the ejs-dropdownlist directive. The attributes used within this tag allow you to define other Dropdown List functionalities. To add the Angular 7 Dropdown List, follow the steps:
- Import the DropDownListModule into the app.module.ts file from the ej2-angular- dropdowns package.
- Import and inject the other required modules within the providers section of app.module.ts.
[app.module.ts]
import { BrowserModule, } from '@angular/platform-browser'; import { DropDownListModule } from '@syncfusion/ej2-angular-dropdowns’; import { NgModule } from '@angular/core'; import { FormsModule } from '@angular/forms'; import { AppComponent } from './app.component'; @NgModule({ declarations: [ AppComponent ], imports: [ BrowserModule, FormsModule, DropDownListModule ], bootstrap: [AppComponent] }) export class AppModule { }
- Define the Angular Dropdown List code within the app.component.html file which is mapped against the templateUrl option in the app.component.ts file.
[app.component.html]
<ejs-dropdownlist></ejs-dropdownlist>
- Refer to the CDN link of CSS reference within the index.html file.
[index.html]
<link href="https://cdn.syncfusion.com/ej2/material.css" rel="stylesheet" />
- Run the application with the ng serve command, and an empty Dropdown List will be displayed on the browser. Now, you can load the Dropdown List with data.
Loading data
You can populate the empty Dropdown List with data by using the JSON data through the dataSource property.
[app.component.ts]
import { Component } from '@angular/core'; @Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls: ['./app.component.css'], }) export class AppComponent { // define the JSON of data public countries: { [key: string]: Object; }[] = [ { Name: 'Australia', Code: 'AU' }, { Name: 'Bermuda', Code: 'BM' }, { Name: 'Canada', Code: 'CA' }, { Name: 'Cameroon', Code: 'CM' }, { Name: 'Denmark', Code: 'DK' }, { Name: 'France', Code: 'FR' }, { Name: 'Finland', Code: 'FI' }, { Name: 'Germany', Code: 'DE' }, ]; // maps the local data column to fields property public localFields: Object = { text: 'Name', value: 'Code' }; // set the placeholder to Dropdown List input element public localWaterMark: string = 'Select countries'; }
[app.component.html]
<ejs-dropdownlist id='localData' #local [dataSource]='countries' [fields]='localFields' [placeholder]='localWaterMark'></ejs-dropdownlist >
Setting initial select value on Dropdown list
You can populate the empty Dropdown List with value by binding the string data through the value property initially.
[app.component.ts]
import { Component } from '@angular/core'; @Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls: ['./app.component.css'], }) export class AppComponent { public value: string = 'AU'; }
Now, assign this value to the value property of Angular Dropdown List within the app.component.html file.
[app.component.html]
<ejs-dropdownlist id='localData' #local [dataSource]='countries' [fields]='localFields' [placeholder]='localWaterMark' [value]='value' ></ejs-dropdownlist >
Getting the selected value on form submit
By using the ngModel, you can get the value from the ngform submit
[app.component.ts]
import { Component } from '@angular/core'; @Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls: ['./app.component.css'], }) export class AppComponent { onSubmit(form: NgForm): void { console.log(form.value.name); } }
[app.component.html]
<form #form='ngForm' (ngSubmit)="onSubmit(form)"> <div class="form-group"> <ejs-dropdownlist id='localData' name='name' #local='ngModel' [(value)]='value'[(ngModel)]='value' [dataSource]='countries' [fields]='localFields' [placeholder]='localWaterMark'></ejs-dropdownlist> <button type="submit" ejs-button>Submit</button> </div> </form>
Run the application with the command ng serve in the command prompt.
You can view the Angular Dropdown List output with the data and other settings.
There are more options to explore with UG Documentation and you can also try to play with the downloadable example link in this knowledge base article.
Downloadable example link: Angular 7 Dropdown List