Introduction

Ngx-Bootstrap has released a package of open-source tools which is native Angular directives for Bootstrap 3 and 4. It contains all core components powered by Angular. In this article we will learn about Typehead component which is a cool feature of Ngx-bootstrap.

What is Typeahead?

Typeahead - also known as autocomplete or autosuggest is a language prediction tool that many search interfaces use to provide suggestions for users as they type in a textbox.This is a method for searching and filtering through text. It is also sometimes known as autocomplete, incremental search, search-as-you-type and inline search.
Prerequisites
  • Basic knowledge of Angular
  • Visual Studio Code must be installed
  • Angular CLI must be installed
  • Node JS must be installed
Step 1
Let's create a new Angular project using the following NPM command,
  1. ng new typehead-example
Step 2
Now, let's create a new component by using the following command,
  1. ng g c ngx-bootstrap-typehead
Step 3
Install ngx-bootstrap from npm by using the folowing command.
  1. npm install ngx-bootstrap --save
Or
  1. ng add ngx-bootstrap --component typeahead
This will be added to our root module
Step 4
Now let's add bootstrap styles in our index.html file .
For Bootstrap 3,
  1. <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
For Bootstrap 4
  1. <link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" rel="stylesheet">
Step 5
Let add the template in our ngx-bootstrap-typehead.component.html.
  1. <h2>Example of Ngx-Bootstrap Typehead</h2>
  2. <div style="width: fit-content;margin: auto;margin-top: 18px;">
  3. <pre style="background-color: antiquewhite;" class="card card-block card-header mb-3">Selected option: {{selectedOption | json}}</pre>
  4. <input [(ngModel)]="selectedValue" [typeahead]="countries" typeaheadOptionField="name" [typeaheadScrollable]="true"
  5. (typeaheadOnSelect)="onSelect($event)" class="form-control">
  6. </div>
Step 6
Now, open the ngx-bootstrap-typehead.component.ts file and add the following code in this file,
  1. import { Component } from '@angular/core';
  2. import { TypeaheadMatch } from 'ngx-bootstrap/typeahead/typeahead-match.class';
  3. @Component({
  4. selector: 'app-ngx-bootstrap-typeahead',
  5. templateUrl: './ngx-bootstrap-typeahead.component.html'
  6. })
  7. export class NgxBootstrapTypeaheadComponent {
  8. selectedValue: string;
  9. selectedOption: any;
  10. countries: any[] = [
  11. {
  12. "name": "Afghanistan",
  13. "phoneCode": "+93",
  14. "alpha2code": "AF",
  15. "alpha3code": "AFG"
  16. },
  17. {
  18. "name": "Albania",
  19. "phoneCode": "+355",
  20. "alpha2code": "AL",
  21. "alpha3code": "ALB"
  22. },
  23. {
  24. "name": "Algeria",
  25. "phoneCode": "+213",
  26. "alpha2code": "DZ",
  27. "alpha3code": "DZA"
  28. },
  29. {
  30. "name": "American Samoa",
  31. "phoneCode": "+1",
  32. "alpha2code": "AS",
  33. "alpha3code": "ASM"
  34. },
  35. {
  36. "name": "Andorra",
  37. "phoneCode": "+376",
  38. "alpha2code": "AD",
  39. "alpha3code": "AND"
  40. },
  41. {
  42. "name": "Angola",
  43. "phoneCode": "+244",
  44. "alpha2code": "AO",
  45. "alpha3code": "AGO"
  46. },
  47. {
  48. "name": "Anguilla",
  49. "phoneCode": "+1",
  50. "alpha2code": "AI",
  51. "alpha3code": "AIA"
  52. },
  53. {
  54. "name": "Antigua and Barbuda",
  55. "phoneCode": "+1",
  56. "alpha2code": "AG",
  57. "alpha3code": "ATG"
  58. },
  59. {
  60. "name": "Argentina",
  61. "phoneCode": "+54",
  62. "alpha2code": "AR",
  63. "alpha3code": "ARG"
  64. },
  65. {
  66. "name": "Armenia",
  67. "phoneCode": "+374",
  68. "alpha2code": "AM",
  69. "alpha3code": "ARM"
  70. },
  71. {
  72. "name": "Aruba",
  73. "phoneCode": "+297",
  74. "alpha2code": "AW",
  75. "alpha3code": "ABW"
  76. },
  77. {
  78. "name": "Australia",
  79. "phoneCode": "+61",
  80. "alpha2code": "AU",
  81. "alpha3code": "AUS"
  82. },
  83. {
  84. "name": "Austria",
  85. "phoneCode": "+43",
  86. "alpha2code": "AT",
  87. "alpha3code": "AUT"
  88. },
  89. {
  90. "name": "Azerbaijan",
  91. "phoneCode": "+994",
  92. "alpha2code": "AZ",
  93. "alpha3code": "AZE"
  94. },
  95. {
  96. "name": "Bahrain",
  97. "phoneCode": "+973",
  98. "alpha2code": "BH",
  99. "alpha3code": "BHR"
  100. },
  101. {
  102. "name": "Bangladesh",
  103. "phoneCode": "+880",
  104. "alpha2code": "BD",
  105. "alpha3code": "BGD"
  106. },
  107. {
  108. "name": "Barbados",
  109. "phoneCode": "+1",
  110. "alpha2code": "BB",
  111. "alpha3code": "BRB"
  112. },
  113. {
  114. "name": "Belarus",
  115. "phoneCode": "+375",
  116. "alpha2code": "BY",
  117. "alpha3code": "BLR"
  118. },
  119. {
  120. "name": "Belgium",
  121. "phoneCode": "+32",
  122. "alpha2code": "BE",
  123. "alpha3code": "BEL"
  124. },
  125. {
  126. "name": "Belize",
  127. "phoneCode": "+501",
  128. "alpha2code": "BZ",
  129. "alpha3code": "BLZ"
  130. },
  131. {
  132. "name": "Benin",
  133. "phoneCode": "+229",
  134. "alpha2code": "BJ",
  135. "alpha3code": "BEN"
  136. },
  137. {
  138. "name": "Bermuda",
  139. "phoneCode": "+1",
  140. "alpha2code": "BM",
  141. "alpha3code": "BMU"
  142. },
  143. {
  144. "name": "Bhutan",
  145. "phoneCode": "+975",
  146. "alpha2code": "BT",
  147. "alpha3code": "BTN"
  148. },
  149. {
  150. "name": "Bolivia",
  151. "phoneCode": "+591",
  152. "alpha2code": "BO",
  153. "alpha3code": "BOL"
  154. },
  155. {
  156. "name": "Bonaire, Sint Eustatius and Saba",
  157. "phoneCode": "+599",
  158. "alpha2code": "BQ",
  159. "alpha3code": "BES"
  160. },
  161. {
  162. "name": "Bosnia and Herzegovina",
  163. "phoneCode": "+387",
  164. "alpha2code": "BA",
  165. "alpha3code": "BIH"
  166. },
  167. {
  168. "name": "Botswana",
  169. "phoneCode": "+267",
  170. "alpha2code": "BW",
  171. "alpha3code": "BWA"
  172. },
  173. {
  174. "name": "Brazil",
  175. "phoneCode": "+55",
  176. "alpha2code": "BR",
  177. "alpha3code": "BRA"
  178. },
  179. {
  180. "name": "British Indian Ocean Territory",
  181. "phoneCode": "+246",
  182. "alpha2code": "IO",
  183. "alpha3code": "IOT"
  184. },
  185. {
  186. "name": "British Virgin Islands",
  187. "phoneCode": "+1",
  188. "alpha2code": "VG",
  189. "alpha3code": "VGB"
  190. },
  191. {
  192. "name": "Brunei Darussalam",
  193. "phoneCode": "+673",
  194. "alpha2code": "BN",
  195. "alpha3code": "BRN"
  196. },
  197. {
  198. "name": "Bulgaria",
  199. "phoneCode": "+359",
  200. "alpha2code": "BG",
  201. "alpha3code": "BGR"
  202. },
  203. {
  204. "name": "Burkina Faso",
  205. "phoneCode": "+226",
  206. "alpha2code": "BF",
  207. "alpha3code": "BFA"
  208. },
  209. {
  210. "name": "Myanmar",
  211. "phoneCode": "+95",
  212. "alpha2code": "MM",
  213. "alpha3code": "MMR"
  214. },
  215. {
  216. "name": "Burundi",
  217. "phoneCode": "+257",
  218. "alpha2code": "BI",
  219. "alpha3code": "BDI"
  220. },
  221. {
  222. "name": "Cambodia",
  223. "phoneCode": "+855",
  224. "alpha2code": "KH",
  225. "alpha3code": "KHM"
  226. },
  227. {
  228. "name": "Cameroon",
  229. "phoneCode": "+237",
  230. "alpha2code": "CM",
  231. "alpha3code": "CMR"
  232. },
  233. {
  234. "name": "Canada",
  235. "phoneCode": "+1",
  236. "alpha2code": "CA",
  237. "alpha3code": "CAN"
  238. },
  239. {
  240. "name": "Cabo Verde",
  241. "phoneCode": "+238",
  242. "alpha2code": "CV",
  243. "alpha3code": "CPV"
  244. },
  245. {
  246. "name": "Cayman Islands",
  247. "phoneCode": "+1",
  248. "alpha2code": "KY",
  249. "alpha3code": "CYM"
  250. },
  251. {
  252. "name": "Central African Republic",
  253. "phoneCode": "+236",
  254. "alpha2code": "CF",
  255. "alpha3code": "CAF"
  256. },
  257. {
  258. "name": "Chad",
  259. "phoneCode": "+235",
  260. "alpha2code": "ID",
  261. "alpha3code": "TCD"
  262. },
  263. {
  264. "name": "Chile",
  265. "phoneCode": "+56",
  266. "alpha2code": "CL",
  267. "alpha3code": "CHL"
  268. },
  269. {
  270. "name": "China",
  271. "phoneCode": "+86",
  272. "alpha2code": "CN",
  273. "alpha3code": "CHN"
  274. },
  275. {
  276. "name": "Colombia",
  277. "phoneCode": "+57",
  278. "alpha2code": "CO",
  279. "alpha3code": "COL"
  280. },
  281. {
  282. "name": "Comoros",
  283. "phoneCode": "+269",
  284. "alpha2code": "KM",
  285. "alpha3code": "COM"
  286. },
  287. {
  288. "name": "Cook Islands",
  289. "phoneCode": "+682",
  290. "alpha2code": "CK",
  291. "alpha3code": "COK"
  292. },
  293. {
  294. "name": "Costa Rica",
  295. "phoneCode": "+506",
  296. "alpha2code": "CR",
  297. "alpha3code": "CRI"
  298. },
  299. {
  300. "name": "Côte dIvoire",
  301. "phoneCode": "+225",
  302. "alpha2code": "CI",
  303. "alpha3code": "CIV"
  304. },
  305. {
  306. "name": "Croatia",
  307. "phoneCode": "+385",
  308. "alpha2code": "HR",
  309. "alpha3code": "HRV"
  310. },
  311. {
  312. "name": "Cuba",
  313. "phoneCode": "+53",
  314. "alpha2code": "CU",
  315. "alpha3code": "CUB"
  316. },
  317. {
  318. "name": "Curaçao",
  319. "phoneCode": "+599",
  320. "alpha2code": "CW",
  321. "alpha3code": "CUW"
  322. },
  323. {
  324. "name": "Cyprus",
  325. "phoneCode": "+357",
  326. "alpha2code": "CY",
  327. "alpha3code": "CYP"
  328. },
  329. {
  330. "name": "Czechia",
  331. "phoneCode": "+420",
  332. "alpha2code": "CZ",
  333. "alpha3code": "CZE"
  334. },
  335. {
  336. "name": "Denmark",
  337. "phoneCode": "+45",
  338. "alpha2code": "DK",
  339. "alpha3code": "DNK"
  340. },
  341. {
  342. "name": "Djibouti",
  343. "phoneCode": "+253",
  344. "alpha2code": "DJ",
  345. "alpha3code": "DJI"
  346. },
  347. {
  348. "name": "Dominica",
  349. "phoneCode": "+1",
  350. "alpha2code": "DM",
  351. "alpha3code": "DMA"
  352. },
  353. {
  354. "name": "Dominican Republic",
  355. "phoneCode": "+1",
  356. "alpha2code": "DO",
  357. "alpha3code": "DOM"
  358. },
  359. {
  360. "name": "Ecuador",
  361. "phoneCode": "+593",
  362. "alpha2code": "EC",
  363. "alpha3code": "ECU"
  364. },
  365. {
  366. "name": "Egypt",
  367. "phoneCode": "+20",
  368. "alpha2code": "EG",
  369. "alpha3code": "EGY"
  370. },
  371. {
  372. "name": "El Salvador",
  373. "phoneCode": "+503",
  374. "alpha2code": "SV",
  375. "alpha3code": "SLV"
  376. },
  377. {
  378. "name": "Equatorial Guinea",
  379. "phoneCode": "+240",
  380. "alpha2code": "GQ",
  381. "alpha3code": "GNQ"
  382. },
  383. {
  384. "name": "Eritrea",
  385. "phoneCode": "+291",
  386. "alpha2code": "ER",
  387. "alpha3code": "ERI"
  388. },
  389. {
  390. "name": "Estonia",
  391. "phoneCode": "+372",
  392. "alpha2code": "EE",
  393. "alpha3code": "EST"
  394. },
  395. {
  396. "name": "Ethiopia",
  397. "phoneCode": "+251",
  398. "alpha2code": "ET",
  399. "alpha3code": "ETH"
  400. },
  401. {
  402. "name": "Falkland Islands",
  403. "phoneCode": "+500",
  404. "alpha2code": "FK",
  405. "alpha3code": "FLK"
  406. },
  407. {
  408. "name": "Faroe Islands",
  409. "phoneCode": "+298",
  410. "alpha2code": "FO",
  411. "alpha3code": "FRO"
  412. },
  413. {
  414. "name": "Federated States of Micronesia",
  415. "phoneCode": "+691",
  416. "alpha2code": "FM",
  417. "alpha3code": "FSM"
  418. },
  419. {
  420. "name": "Fiji",
  421. "phoneCode": "+679",
  422. "alpha2code": "FJ",
  423. "alpha3code": "FJI"
  424. },
  425. {
  426. "name": "Finland",
  427. "phoneCode": "+358",
  428. "alpha2code": "FI",
  429. "alpha3code": "FIN"
  430. },
  431. {
  432. "name": "France",
  433. "phoneCode": "+33",
  434. "alpha2code": "FR",
  435. "alpha3code": "FRA"
  436. },
  437. {
  438. "name": "French Guiana",
  439. "phoneCode": "+594",
  440. "alpha2code": "GF",
  441. "alpha3code": "GUF"
  442. },
  443. {
  444. "name": "French Polynesia",
  445. "phoneCode": "+689",
  446. "alpha2code": "PF",
  447. "alpha3code": "PYF"
  448. },
  449. {
  450. "name": "Gabon",
  451. "phoneCode": "+241",
  452. "alpha2code": "GA",
  453. "alpha3code": "GAB"
  454. },
  455. {
  456. "name": "Georgia",
  457. "phoneCode": "+995",
  458. "alpha2code": "GE",
  459. "alpha3code": "GEO"
  460. },
  461. {
  462. "name": "Germany",
  463. "phoneCode": "+49",
  464. "alpha2code": "DE",
  465. "alpha3code": "DEU"
  466. },
  467. {
  468. "name": "Ghana",
  469. "phoneCode": "+233",
  470. "alpha2code": "GH",
  471. "alpha3code": "GHA"
  472. },
  473. {
  474. "name": "Gibraltar",
  475. "phoneCode": "+350",
  476. "alpha2code": "GI",
  477. "alpha3code": "GIB"
  478. },
  479. {
  480. "name": "Greece",
  481. "phoneCode": "+30",
  482. "alpha2code": "GR",
  483. "alpha3code": "GRC"
  484. },
  485. {
  486. "name": "Greenland",
  487. "phoneCode": "+299",
  488. "alpha2code": "GL",
  489. "alpha3code": "GRL"
  490. },
  491. {
  492. "name": "Grenada",
  493. "phoneCode": "+1",
  494. "alpha2code": "GD",
  495. "alpha3code": "GRD"
  496. },
  497. {
  498. "name": "Guadeloupe",
  499. "phoneCode": "+590",
  500. "alpha2code": "GP",
  501. "alpha3code": "GLP"
  502. },
  503. {
  504. "name": "Guam",
  505. "phoneCode": "+1",
  506. "alpha2code": "GU",
  507. "alpha3code": "GUM"
  508. },
  509. {
  510. "name": "Guatemala",
  511. "phoneCode": "+502",
  512. "alpha2code": "GT",
  513. "alpha3code": "GTM"
  514. },
  515. {
  516. "name": "Guinea",
  517. "phoneCode": "+224",
  518. "alpha2code": "GN",
  519. "alpha3code": "GIN"
  520. },
  521. {
  522. "name": "Guinea-Bissau",
  523. "phoneCode": "+245",
  524. "alpha2code": "GW",
  525. "alpha3code": "GNB"
  526. },
  527. {
  528. "name": "Guyana",
  529. "phoneCode": "+592",
  530. "alpha2code": "GY",
  531. "alpha3code": "GUY"
  532. },
  533. {
  534. "name": "Haiti",
  535. "phoneCode": "+509",
  536. "alpha2code": "HT",
  537. "alpha3code": "HTI"
  538. },
  539. {
  540. "name": "Honduras",
  541. "phoneCode": "+504",
  542. "alpha2code": "HN",
  543. "alpha3code": "HND"
  544. },
  545. {
  546. "name": "Hong Kong",
  547. "phoneCode": "+852",
  548. "alpha2code": "HK",
  549. "alpha3code": "HKG"
  550. },
  551. {
  552. "name": "Hungary",
  553. "phoneCode": "+36",
  554. "alpha2code": "HU",
  555. "alpha3code": "HUN"
  556. },
  557. {
  558. "name": "Iceland",
  559. "phoneCode": "+354",
  560. "alpha2code": "IS",
  561. "alpha3code": "ISL"
  562. },
  563. {
  564. "name": "India",
  565. "phoneCode": "+91",
  566. "alpha2code": "IN",
  567. "alpha3code": "IND"
  568. },
  569. {
  570. "name": "Indonesia",
  571. "phoneCode": "+62",
  572. "alpha2code": "ID",
  573. "alpha3code": "IDN"
  574. },
  575. {
  576. "name": "Iran",
  577. "phoneCode": "+98",
  578. "alpha2code": "IR",
  579. "alpha3code": "IRN"
  580. },
  581. {
  582. "name": "Iraq",
  583. "phoneCode": "+964",
  584. "alpha2code": "IQ",
  585. "alpha3code": "IRQ"
  586. },
  587. {
  588. "name": "Ireland",
  589. "phoneCode": "+353",
  590. "alpha2code": "IE",
  591. "alpha3code": "IRL"
  592. },
  593. {
  594. "name": "Israel",
  595. "phoneCode": "+972",
  596. "alpha2code": "IL",
  597. "alpha3code": "ISR"
  598. },
  599. {
  600. "name": "Italy",
  601. "phoneCode": "+39",
  602. "alpha2code": "IT",
  603. "alpha3code": "ITA"
  604. },
  605. {
  606. "name": "Jamaica",
  607. "phoneCode": "+1",
  608. "alpha2code": "JM",
  609. "alpha3code": "JAM"
  610. },
  611. {
  612. "name": "Japan",
  613. "phoneCode": "+81",
  614. "alpha2code": "JP",
  615. "alpha3code": "JPN"
  616. },
  617. {
  618. "name": "Jordan",
  619. "phoneCode": "+962",
  620. "alpha2code": "JO",
  621. "alpha3code": "JOR"
  622. },
  623. {
  624. "name": "Kazakhstan",
  625. "phoneCode": "+7",
  626. "alpha2code": "KZ",
  627. "alpha3code": "KAZ"
  628. },
  629. {
  630. "name": "Kenya",
  631. "phoneCode": "+254",
  632. "alpha2code": "KE",
  633. "alpha3code": "KEN"
  634. },
  635. {
  636. "name": "Kiribati",
  637. "phoneCode": "+686",
  638. "alpha2code": "KI",
  639. "alpha3code": "KIR"
  640. },
  641. {
  642. "name": "Kuwait",
  643. "phoneCode": "+965",
  644. "alpha2code": "KW",
  645. "alpha3code": "KWT"
  646. },
  647. {
  648. "name": "Kyrgyzstan",
  649. "phoneCode": "+996",
  650. "alpha2code": "KG",
  651. "alpha3code": "KGZ"
  652. },
  653. {
  654. "name": "Laos",
  655. "phoneCode": "+856",
  656. "alpha2code": "LA",
  657. "alpha3code": "LAO"
  658. },
  659. {
  660. "name": "Latvia",
  661. "phoneCode": "+371",
  662. "alpha2code": "LV",
  663. "alpha3code": "LVA"
  664. },
  665. {
  666. "name": "Lebanon",
  667. "phoneCode": "+961",
  668. "alpha2code": "LB",
  669. "alpha3code": "LBN"
  670. },
  671. {
  672. "name": "Lesotho",
  673. "phoneCode": "+266",
  674. "alpha2code": "LS",
  675. "alpha3code": "LSO"
  676. },
  677. {
  678. "name": "Liberia",
  679. "phoneCode": "+231",
  680. "alpha2code": "LR",
  681. "alpha3code": "LBR"
  682. },
  683. {
  684. "name": "Libya",
  685. "phoneCode": "+218",
  686. "alpha2code": "LY",
  687. "alpha3code": "LBY"
  688. },
  689. {
  690. "name": "Liechtenstein",
  691. "phoneCode": "+423",
  692. "alpha2code": "LI",
  693. "alpha3code": "LIE"
  694. },
  695. {
  696. "name": "Lithuania",
  697. "phoneCode": "+370",
  698. "alpha2code": "LT",
  699. "alpha3code": "LTU"
  700. },
  701. {
  702. "name": "Luxembourg",
  703. "phoneCode": "+352",
  704. "alpha2code": "LU",
  705. "alpha3code": "LUX"
  706. },
  707. {
  708. "name": "Macao",
  709. "phoneCode": "+853",
  710. "alpha2code": "MO",
  711. "alpha3code": "MAC"
  712. },
  713. {
  714. "name": "Macedonia",
  715. "phoneCode": "+389",
  716. "alpha2code": "MK",
  717. "alpha3code": "MKD"
  718. },
  719. {
  720. "name": "Madagascar",
  721. "phoneCode": "+261",
  722. "alpha2code": "MG",
  723. "alpha3code": "MDG"
  724. },
  725. {
  726. "name": "Malawi",
  727. "phoneCode": "+265",
  728. "alpha2code": "MW",
  729. "alpha3code": "MWI"
  730. },
  731. {
  732. "name": "Malaysia",
  733. "phoneCode": "+60",
  734. "alpha2code": "MY",
  735. "alpha3code": "MYS"
  736. },
  737. {
  738. "name": "Maldives",
  739. "phoneCode": "+960",
  740. "alpha2code": "MV",
  741. "alpha3code": "MDV"
  742. },
  743. {
  744. "name": "Mali",
  745. "phoneCode": "+223",
  746. "alpha2code": "ML",
  747. "alpha3code": "MLI"
  748. },
  749. {
  750. "name": "Malta",
  751. "phoneCode": "+356",
  752. "alpha2code": "MT",
  753. "alpha3code": "MLT"
  754. },
  755. {
  756. "name": "Marshall Islands",
  757. "phoneCode": "+692",
  758. "alpha2code": "MH",
  759. "alpha3code": "MHL"
  760. },
  761. {
  762. "name": "Martinique",
  763. "phoneCode": "+596",
  764. "alpha2code": "MQ",
  765. "alpha3code": "MTQ"
  766. },
  767. {
  768. "name": "Mauritania",
  769. "phoneCode": "+222",
  770. "alpha2code": "MR",
  771. "alpha3code": "MRT"
  772. },
  773. {
  774. "name": "Mauritius",
  775. "phoneCode": "+230",
  776. "alpha2code": "MU",
  777. "alpha3code": "MUS"
  778. },
  779. {
  780. "name": "Mayotte",
  781. "phoneCode": "+262",
  782. "alpha2code": "YT",
  783. "alpha3code": "MYT"
  784. },
  785. {
  786. "name": "Mexico",
  787. "phoneCode": "+52",
  788. "alpha2code": "MX",
  789. "alpha3code": "MEX"
  790. },
  791. {
  792. "name": "Moldova",
  793. "phoneCode": "+373",
  794. "alpha2code": "MD",
  795. "alpha3code": "MDA"
  796. },
  797. {
  798. "name": "Monaco",
  799. "phoneCode": "+377",
  800. "alpha2code": "MC",
  801. "alpha3code": "MCO"
  802. },
  803. {
  804. "name": "Mongolia",
  805. "phoneCode": "+976",
  806. "alpha2code": "MN",
  807. "alpha3code": "MNG"
  808. },
  809. {
  810. "name": "Montenegro",
  811. "phoneCode": "+382",
  812. "alpha2code": "ME",
  813. "alpha3code": "MNE"
  814. },
  815. {
  816. "name": "Montserrat",
  817. "phoneCode": "+1",
  818. "alpha2code": "MS",
  819. "alpha3code": "MSR"
  820. },
  821. {
  822. "name": "Morocco",
  823. "phoneCode": "+212",
  824. "alpha2code": "MA",
  825. "alpha3code": "MAR"
  826. },
  827. {
  828. "name": "Mozambique",
  829. "phoneCode": "+258",
  830. "alpha2code": "MZ",
  831. "alpha3code": "MOZ"
  832. },
  833. {
  834. "name": "Namibia",
  835. "phoneCode": "+264",
  836. "alpha2code": "NA",
  837. "alpha3code": "NAM"
  838. },
  839. {
  840. "name": "Nauru",
  841. "phoneCode": "+674",
  842. "alpha2code": "NR",
  843. "alpha3code": "NRU"
  844. },
  845. {
  846. "name": "Nepal",
  847. "phoneCode": "+977",
  848. "alpha2code": "NP",
  849. "alpha3code": "NPL"
  850. },
  851. {
  852. "name": "Netherlands",
  853. "phoneCode": "+31",
  854. "alpha2code": "NL",
  855. "alpha3code": "NLD"
  856. },
  857. {
  858. "name": "Netherlands Antilles",
  859. "phoneCode": "+599",
  860. "alpha2code": "AN",
  861. "alpha3code": "ANT"
  862. },
  863. {
  864. "name": "New Caledonia",
  865. "phoneCode": "+687",
  866. "alpha2code": "NC",
  867. "alpha3code": "NCL"
  868. },
  869. {
  870. "name": "New Zealand",
  871. "phoneCode": "+64",
  872. "alpha2code": "NZ",
  873. "alpha3code": "NZL"
  874. },
  875. {
  876. "name": "Nicaragua",
  877. "phoneCode": "+505",
  878. "alpha2code": "NI",
  879. "alpha3code": "NIC"
  880. },
  881. {
  882. "name": "Niger",
  883. "phoneCode": "+227",
  884. "alpha2code": "NE",
  885. "alpha3code": "NER"
  886. },
  887. {
  888. "name": "Nigeria",
  889. "phoneCode": "+234",
  890. "alpha2code": "NG",
  891. "alpha3code": "NGA"
  892. },
  893. {
  894. "name": "Niue",
  895. "phoneCode": "+683",
  896. "alpha2code": "NU",
  897. "alpha3code": "NIU"
  898. },
  899. {
  900. "name": "Norfolk Island",
  901. "phoneCode": "+672",
  902. "alpha2code": "NF",
  903. "alpha3code": "NFK"
  904. },
  905. {
  906. "name": "North Korea",
  907. "phoneCode": "+850",
  908. "alpha2code": "KP",
  909. "alpha3code": "PRK"
  910. },
  911. {
  912. "name": "Northern Mariana Islands",
  913. "phoneCode": "+1",
  914. "alpha2code": "MP",
  915. "alpha3code": "MNP"
  916. },
  917. {
  918. "name": "Norway",
  919. "phoneCode": "+47",
  920. "alpha2code": "NO",
  921. "alpha3code": "NOR"
  922. },
  923. {
  924. "name": "Oman",
  925. "phoneCode": "+968",
  926. "alpha2code": "OM",
  927. "alpha3code": "OMN"
  928. },
  929. {
  930. "name": "Pakistan",
  931. "phoneCode": "+92",
  932. "alpha2code": "PK",
  933. "alpha3code": "PAK"
  934. },
  935. {
  936. "name": "Palau",
  937. "phoneCode": "+680",
  938. "alpha2code": "PW",
  939. "alpha3code": "PLW"
  940. },
  941. {
  942. "name": "Palestine",
  943. "phoneCode": "+970",
  944. "alpha2code": "PS",
  945. "alpha3code": "PSE"
  946. },
  947. {
  948. "name": "Panama",
  949. "phoneCode": "+507",
  950. "alpha2code": "PA",
  951. "alpha3code": "PAN"
  952. },
  953. {
  954. "name": "Papua New Guinea",
  955. "phoneCode": "+675",
  956. "alpha2code": "PG",
  957. "alpha3code": "PNG"
  958. },
  959. {
  960. "name": "Paraguay",
  961. "phoneCode": "+595",
  962. "alpha2code": "PY",
  963. "alpha3code": "PRY"
  964. },
  965. {
  966. "name": "Peru",
  967. "phoneCode": "+51",
  968. "alpha2code": "PE",
  969. "alpha3code": "PER"
  970. },
  971. {
  972. "name": "Philippines",
  973. "phoneCode": "+63",
  974. "alpha2code": "PH",
  975. "alpha3code": "PHL"
  976. },
  977. {
  978. "name": "Poland",
  979. "phoneCode": "+48",
  980. "alpha2code": "PL",
  981. "alpha3code": "POL"
  982. },
  983. {
  984. "name": "Portugal",
  985. "phoneCode": "+351",
  986. "alpha2code": "PT",
  987. "alpha3code": "PRT"
  988. },
  989. {
  990. "name": "Puerto Rico",
  991. "phoneCode": "+1",
  992. "alpha2code": "PR",
  993. "alpha3code": "PRI"
  994. },
  995. {
  996. "name": "Qatar",
  997. "phoneCode": "+974",
  998. "alpha2code": "QA",
  999. "alpha3code": "QAT"
  1000. },
  1001. {
  1002. "name": "Congo",
  1003. "phoneCode": "+242",
  1004. "alpha2code": "CG",
  1005. "alpha3code": "COG"
  1006. },
  1007. {
  1008. "name": "Réunion",
  1009. "phoneCode": "+262",
  1010. "alpha2code": "RE",
  1011. "alpha3code": "REU"
  1012. },
  1013. {
  1014. "name": "Romania",
  1015. "phoneCode": "+40",
  1016. "alpha2code": "RO",
  1017. "alpha3code": "ROU"
  1018. },
  1019. {
  1020. "name": "Russia",
  1021. "phoneCode": "+7",
  1022. "alpha2code": "RU",
  1023. "alpha3code": "RUS"
  1024. },
  1025. {
  1026. "name": "Rwanda",
  1027. "phoneCode": "+250",
  1028. "alpha2code": "RW",
  1029. "alpha3code": "RWA"
  1030. },
  1031. {
  1032. "name": "Saint Barthélemy",
  1033. "phoneCode": "+590",
  1034. "alpha2code": "BL",
  1035. "alpha3code": "BLM"
  1036. },
  1037. {
  1038. "name": "Saint Helena",
  1039. "phoneCode": "+290",
  1040. "alpha2code": "SH",
  1041. "alpha3code": "SHN"
  1042. },
  1043. {
  1044. "name": "Saint Kitts and Nevis",
  1045. "phoneCode": "+1",
  1046. "alpha2code": "KN",
  1047. "alpha3code": "KNA"
  1048. },
  1049. {
  1050. "name": "Saint Martin",
  1051. "phoneCode": "+590",
  1052. "alpha2code": "MF",
  1053. "alpha3code": "MAF"
  1054. },
  1055. {
  1056. "name": "Saint Pierre and Miquelon",
  1057. "phoneCode": "+508",
  1058. "alpha2code": "PM",
  1059. "alpha3code": "SPM"
  1060. },
  1061. {
  1062. "name": "Saint Vincent and the Grenadines",
  1063. "phoneCode": "+1",
  1064. "alpha2code": "VC",
  1065. "alpha3code": "VCT"
  1066. },
  1067. {
  1068. "name": "Samoa",
  1069. "phoneCode": "+685",
  1070. "alpha2code": "WS",
  1071. "alpha3code": "WSM"
  1072. },
  1073. {
  1074. "name": "San Marino",
  1075. "phoneCode": "+378",
  1076. "alpha2code": "SM",
  1077. "alpha3code": "SMR"
  1078. },
  1079. {
  1080. "name": "São Tomé and Príncipe",
  1081. "phoneCode": "+239",
  1082. "alpha2code": "ST",
  1083. "alpha3code": "STP"
  1084. },
  1085. {
  1086. "name": "Saudi Arabia",
  1087. "phoneCode": "+966",
  1088. "alpha2code": "SA",
  1089. "alpha3code": "SAU"
  1090. },
  1091. {
  1092. "name": "Senegal",
  1093. "phoneCode": "+221",
  1094. "alpha2code": "SN",
  1095. "alpha3code": "SEN"
  1096. },
  1097. {
  1098. "name": "Serbia",
  1099. "phoneCode": "+381",
  1100. "alpha2code": "RS",
  1101. "alpha3code": "SRB"
  1102. },
  1103. {
  1104. "name": "Seychelles",
  1105. "phoneCode": "+248",
  1106. "alpha2code": "SC",
  1107. "alpha3code": "SYC"
  1108. },
  1109. {
  1110. "name": "Sierra Leone",
  1111. "phoneCode": "+232",
  1112. "alpha2code": "SL",
  1113. "alpha3code": "SLE"
  1114. },
  1115. {
  1116. "name": "Singapore",
  1117. "phoneCode": "+65",
  1118. "alpha2code": "SG",
  1119. "alpha3code": "SGP"
  1120. },
  1121. {
  1122. "name": "Sint Maarten (Dutch part)",
  1123. "phoneCode": "+1",
  1124. "alpha2code": "SX",
  1125. "alpha3code": "SXM"
  1126. },
  1127. {
  1128. "name": "Slovakia",
  1129. "phoneCode": "+421",
  1130. "alpha2code": "SK",
  1131. "alpha3code": "SVK"
  1132. },
  1133. {
  1134. "name": "Slovenia",
  1135. "phoneCode": "+386",
  1136. "alpha2code": "SI",
  1137. "alpha3code": "SVN"
  1138. },
  1139. {
  1140. "name": "Solomon Islands",
  1141. "phoneCode": "+677",
  1142. "alpha2code": "SB",
  1143. "alpha3code": "SLB"
  1144. },
  1145. {
  1146. "name": "Somalia",
  1147. "phoneCode": "+252",
  1148. "alpha2code": "SO",
  1149. "alpha3code": "SOM"
  1150. },
  1151. {
  1152. "name": "South Africa",
  1153. "phoneCode": "+27",
  1154. "alpha2code": "ZA",
  1155. "alpha3code": "ZAF"
  1156. },
  1157. {
  1158. "name": "South Korea",
  1159. "phoneCode": "+82",
  1160. "alpha2code": "KR",
  1161. "alpha3code": "KOR"
  1162. },
  1163. {
  1164. "name": "South Sudan",
  1165. "phoneCode": "+211",
  1166. "alpha2code": "SS",
  1167. "alpha3code": "SSD"
  1168. },
  1169. {
  1170. "name": "Spain",
  1171. "phoneCode": "+34",
  1172. "alpha2code": "ES",
  1173. "alpha3code": "ESP"
  1174. },
  1175. {
  1176. "name": "Sri Lanka",
  1177. "phoneCode": "+94",
  1178. "alpha2code": "LK",
  1179. "alpha3code": "LKA"
  1180. },
  1181. {
  1182. "name": "Saint Lucia",
  1183. "phoneCode": "+1",
  1184. "alpha2code": "LC",
  1185. "alpha3code": "LCA"
  1186. },
  1187. {
  1188. "name": "Sudan",
  1189. "phoneCode": "+249",
  1190. "alpha2code": "SD",
  1191. "alpha3code": "SDN"
  1192. },
  1193. {
  1194. "name": "Suriname",
  1195. "phoneCode": "+597",
  1196. "alpha2code": "SR",
  1197. "alpha3code": "SUR"
  1198. },
  1199. {
  1200. "name": "Swaziland",
  1201. "phoneCode": "+268",
  1202. "alpha2code": "SZ",
  1203. "alpha3code": "SWZ"
  1204. },
  1205. {
  1206. "name": "Sweden",
  1207. "phoneCode": "+46",
  1208. "alpha2code": "SE",
  1209. "alpha3code": "SWE"
  1210. },
  1211. {
  1212. "name": "Switzerland",
  1213. "phoneCode": "+41",
  1214. "alpha2code": "CH",
  1215. "alpha3code": "CHE"
  1216. },
  1217. {
  1218. "name": "Syrian Arab Republic",
  1219. "phoneCode": "+963",
  1220. "alpha2code": "SY",
  1221. "alpha3code": "SYR"
  1222. },
  1223. {
  1224. "name": "Taiwan",
  1225. "phoneCode": "+886",
  1226. "alpha2code": "TW",
  1227. "alpha3code": "TWN"
  1228. },
  1229. {
  1230. "name": "Tajikistan",
  1231. "phoneCode": "+992",
  1232. "alpha2code": "TJ",
  1233. "alpha3code": "TJK"
  1234. },
  1235. {
  1236. "name": "Tanzania",
  1237. "phoneCode": "+255",
  1238. "alpha2code": "TZ",
  1239. "alpha3code": "TZA"
  1240. },
  1241. {
  1242. "name": "Thailand",
  1243. "phoneCode": "+66",
  1244. "alpha2code": "TH",
  1245. "alpha3code": "THA"
  1246. },
  1247. {
  1248. "name": "Bahamas",
  1249. "phoneCode": "+1",
  1250. "alpha2code": "BS",
  1251. "alpha3code": "BHS"
  1252. },
  1253. {
  1254. "name": "Gambia",
  1255. "phoneCode": "+220",
  1256. "alpha2code": "GM",
  1257. "alpha3code": "GMB"
  1258. },
  1259. {
  1260. "name": "Timor-Leste",
  1261. "phoneCode": "+670",
  1262. "alpha2code": "TL",
  1263. "alpha3code": "TLS"
  1264. },
  1265. {
  1266. "name": "Togo",
  1267. "phoneCode": "+228",
  1268. "alpha2code": "TG",
  1269. "alpha3code": "TGO"
  1270. },
  1271. {
  1272. "name": "Tokelau",
  1273. "phoneCode": "+690",
  1274. "alpha2code": "TK",
  1275. "alpha3code": "TKL"
  1276. },
  1277. {
  1278. "name": "Tonga",
  1279. "phoneCode": "+676",
  1280. "alpha2code": "TO",
  1281. "alpha3code": "TON"
  1282. },
  1283. {
  1284. "name": "Trinidad and Tobago",
  1285. "phoneCode": "+1",
  1286. "alpha2code": "TT",
  1287. "alpha3code": "TTO"
  1288. },
  1289. {
  1290. "name": "Tunisia",
  1291. "phoneCode": "+216",
  1292. "alpha2code": "TN",
  1293. "alpha3code": "TUN"
  1294. },
  1295. {
  1296. "name": "Turkey",
  1297. "phoneCode": "+90",
  1298. "alpha2code": "TR",
  1299. "alpha3code": "TUR"
  1300. },
  1301. {
  1302. "name": "Turkmenistan",
  1303. "phoneCode": "+993",
  1304. "alpha2code": "TM",
  1305. "alpha3code": "TKM"
  1306. },
  1307. {
  1308. "name": "Turks and Caicos Islands",
  1309. "phoneCode": "+1",
  1310. "alpha2code": "TC",
  1311. "alpha3code": "TCA"
  1312. },
  1313. {
  1314. "name": "Tuvalu",
  1315. "phoneCode": "+688",
  1316. "alpha2code": "TV",
  1317. "alpha3code": "TUV"
  1318. },
  1319. {
  1320. "name": "Uganda",
  1321. "phoneCode": "+256",
  1322. "alpha2code": "UG",
  1323. "alpha3code": "UGA"
  1324. },
  1325. {
  1326. "name": "Ukraine",
  1327. "phoneCode": "+380",
  1328. "alpha2code": "UA",
  1329. "alpha3code": "UKR"
  1330. },
  1331. {
  1332. "name": "United Arab Emirates",
  1333. "phoneCode": "+971",
  1334. "alpha2code": "AE",
  1335. "alpha3code": "ARE"
  1336. },
  1337. {
  1338. "name": "United Kingdom",
  1339. "phoneCode": "+44",
  1340. "alpha2code": "GB",
  1341. "alpha3code": "GBR"
  1342. },
  1343. {
  1344. "name": "United States",
  1345. "phoneCode": "+1",
  1346. "alpha2code": "US",
  1347. "alpha3code": "USA"
  1348. },
  1349. {
  1350. "name": "Uruguay",
  1351. "phoneCode": "+598",
  1352. "alpha2code": "UY",
  1353. "alpha3code": "URY"
  1354. },
  1355. {
  1356. "name": "U.S. Virgin Islands",
  1357. "phoneCode": "+1",
  1358. "alpha2code": "VI",
  1359. "alpha3code": "VIR"
  1360. },
  1361. {
  1362. "name": "Uzbekistan",
  1363. "phoneCode": "+998",
  1364. "alpha2code": "UZ",
  1365. "alpha3code": "UZB"
  1366. },
  1367. {
  1368. "name": "Vanuatu",
  1369. "phoneCode": "+678",
  1370. "alpha2code": "VU",
  1371. "alpha3code": "VUT"
  1372. },
  1373. {
  1374. "name": "Vatican City",
  1375. "phoneCode": "+39",
  1376. "alpha2code": "VA",
  1377. "alpha3code": "VAT"
  1378. },
  1379. {
  1380. "name": "Venezuela",
  1381. "phoneCode": "+58",
  1382. "alpha2code": "VE",
  1383. "alpha3code": "VEN"
  1384. },
  1385. {
  1386. "name": "Vietnam",
  1387. "phoneCode": "+84",
  1388. "alpha2code": "VN",
  1389. "alpha3code": "VNM"
  1390. },
  1391. {
  1392. "name": "Wallis and Futuna",
  1393. "phoneCode": "+681",
  1394. "alpha2code": "WF",
  1395. "alpha3code": "WLF"
  1396. },
  1397. {
  1398. "name": "Yemen",
  1399. "phoneCode": "+967",
  1400. "alpha2code": "YE",
  1401. "alpha3code": "YEM"
  1402. },
  1403. {
  1404. "name": "Zambia",
  1405. "phoneCode": "+260",
  1406. "alpha2code": "ZM",
  1407. "alpha3code": "ZMB"
  1408. },
  1409. {
  1410. "name": "Zimbabwe",
  1411. "phoneCode": "+263",
  1412. "alpha2code": "ZW",
  1413. "alpha3code": "ZWE"
  1414. }
  1415. ];
  1416. onSelect(event: TypeaheadMatch): void {
  1417. this.selectedOption = event.item;
  1418. }
  1419. }
Step 7
Now, open the app.component.html file and add the following code in the file,
  1. <app-ngx-bootstrap-typeahead></app-ngx-bootstrap-typeahead>
Step 8
Let's open app.module.ts file and add the following code in the file,
  1. import { BrowserModule } from '@angular/platform-browser';
  2. import { NgModule } from '@angular/core';
  3. import { FormsModule, ReactiveFormsModule } from '@angular/forms';
  4. import { AppComponent } from './app.component';
  5. import { HttpClientModule } from '@angular/common/http';
  6. import { NgxBootstrapTypeaheadComponent } from './ngx-bootstrap-typeahead/ngx-bootstrap-typeahead.component';
  7. import { TypeaheadModule } from 'ngx-bootstrap/typeahead';
  8. import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
  9. @NgModule({
  10. declarations: [
  11. AppComponent,
  12. NgxBootstrapTypeaheadComponent
  13. ],
  14. imports: [
  15. BrowserModule,
  16. TypeaheadModule.forRoot(),
  17. BrowserAnimationsModule,
  18. FormsModule,
  19. ReactiveFormsModule,
  20. HttpClientModule
  21. ],
  22. bootstrap: [AppComponent]
  23. })
  24. export class AppModule { }
Now it's time for the output,
Use Of Ngx-Bootstrap Typehead In Angular 8
Use Of Ngx-Bootstrap Typehead In Angular 8
Use Of Ngx-Bootstrap Typehead In Angular 8
As we can see, whenever I am typing the key, it's getting the values related to the search. We can get the data from the web API.

Conclusion

In this article, we have seen the Ngx-Bootstrap typehead Component in an Angular 8 application.
Please give your valuable feedback/comments/questions about this article.
I hope you have enjoyed this article, as I have enjoyed writing and coding the examples.
Please let me know how to improve it.