@akveo/ng2-completer

中文文档
9.0.1发布于 2020/03/23MITTypeScriptESM + CJS零依赖近 30 天下载 1.4万

Temporary fork of https://github.com/oferh/ng2-completer to fix build issue

原始使用文档
文档目录12 节
  1. help needed
  2. Installation
  3. Usage
  4. System.js configuration
  5. API
  6. ng2-completer component
  7. ng2-completer events
  8. ng2-completer methods
  9. Local data
  10. Remote data
  11. CSS classes
  12. Credits

ng2-completer

Auto complete component for Angular 2.

This component is based on angucomplete-alt

Click for demo or plunk

help needed

I don't use this library much anymore and don't have time to properly maintain it. If you are currently using ng2-completer and interested to maintain it please let me know!

Installation

npm install ng2-completer --save

Usage

The module you want to use ng2-completer in must import Ng2CompleterModule and FormsModule (to use the ngModel directive on ng2-completer). Ng2CompleterModule provides the CompleterService, and declares the ng2-completer directive.

import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { FormsModule } from "@angular/forms";
import { HttpClientModule } from "@angular/common/http";
import { AppComponent } from './app.component';
import { Ng2CompleterModule } from "ng2-completer";


@NgModule({
  imports: [
      BrowserModule,
      FormsModule,
      HttpClientModule,
      Ng2CompleterModule,
  ],
  declarations: [ AppComponent ],
  bootstrap: [ AppComponent ]
})
export class AppModule { }

Add ng2-completer to your component and create a data source:

import { Component } from '@angular/core';
import { CompleterService, CompleterData } from 'ng2-completer';

@Component({
  selector: 'my-component',
  template: `<h1>Search color</h1>
            <ng2-completer [(ngModel)]="searchStr" [datasource]="dataService" [minSearchLength]="0"></ng2-completer>
            <h1>Search captain</h1>
            <ng2-completer [(ngModel)]="captain" [datasource]="captains" [minSearchLength]="0"></ng2-completer>`
})
export class MyComponent {

  protected searchStr: string;
  protected captain: string;
  protected dataService: CompleterData;
  protected searchData = [
    { color: 'red', value: '#f00' },
    { color: 'green', value: '#0f0' },
    { color: 'blue', value: '#00f' },
    { color: 'cyan', value: '#0ff' },
    { color: 'magenta', value: '#f0f' },
    { color: 'yellow', value: '#ff0' },
    { color: 'black', value: '#000' }
  ];
  protected captains = ['James T. Kirk', 'Benjamin Sisko', 'Jean-Luc Picard', 'Spock', 'Jonathan Archer', 'Hikaru Sulu', 'Christopher Pike', 'Rachel Garrett' ];

  constructor(private completerService: CompleterService) {
    this.dataService = completerService.local(this.searchData, 'color', 'color');
  }
}

ng2-completer uses rxjs stream as data sources. There are 2 ready made data sources that can be used to fetch local and remote data but it's also possible to provide a custom source that generates a stream of items.

System.js configuration

Add the following to System.js map configuration:

   var map = {
       ...
       'ng2-completer': 'node_modules/ng2-completer/ng2-completer.umd.js'
   }

API

ng2-completer component

AttributeDescriptionTypeRequiredDefault
datasourceAutocomplete list data source can be an array of strings or a URL that results in an array of strings or a CompleterData objectArray<string>|string|CompleterDataYes
dataServiceDeprecated use datasource instead. Autocomplete list data source.CompleterDataYes
ngModelsee the angular forms API.stringYes
autoMatchAuto select an item if it is the only result and it is an exact match of the search text.booleanNofalse
autofocusSet input focus when the page loadsbooleanNofalse
clearUnselectedClear the input on blur if not selected.booleanNofalse
clearSelectedClear the input when a result is selected.booleanNofalse
disableInputIf true disable the input field.booleanNofalse
fieldTabindexSet the tabIndex of the input.numberNo
initialValueInitial value for the component. Value is parsed using: titleField, descriptionField and imageField and used as selected valueanyNo
inputIdid attribute of the input element.stringNo
inputNamename attribute of the input element.stringNo
inputClassclass attribute of the input element.stringNo
matchClassCSS class to apply for matching part of the title and description.stringNo
maxCharsMaximal number of characters that the user can type in the component.numberNo524288
minSearchLengthMinimal number of characters required for searching.numberNo3
overrideSuggestedIf true will override suggested and set the model with the value in the input field.booleanNofalse
openOnFocusIf true will open the dropdown and perform search when the input gets the focus.booleanNofalse
openOnClickIf true will open and close the dropdown by click.booleanNofalse
selectOnFocusIf true will select the input text upon focus.booleanNofalse
selectOnClickIf true will select the input text by click.booleanNofalse
fillHighlightedIf true will set the model with the value in the input field when item is highlighted.booleanNotrue
pauseNumber of msec. to wait before searching.numberNo250
placeholderPlaceholder text for the search field.stringNo
textNoResultsText displayed when the search returned no results. if the string is falsy it won't be displayedstringNo
textSearchingText displayed while search is active. if the string is falsy it won't be displayedstringNoSearching...
autoHighlightAutomatically highlight the best matching search result when the input changes. the "best match" is selected by: exact match, starts with and finally includesbooleanNofalse

ng2-completer events

NameDescriptionType
selectedemitted when an item is selected.(selected: CompleterItem): void
highlightedemitted when an item is highlighted.(highlighted: CompleterItem): void
focusemitted when the input gets focus(): void
bluremitted when the input looses focus(): void
openedemitted when the dropdown is opened or closed(isOpen: boolean): void
keyupemitted when the input emits keyup(event: any): void
keydownemitted when the input emits keydown(event: any): void

ng2-completer methods

MethodDescriptionParameters
open()Open the dropdown
close()Close the dropdown
focus()Set the focus to the completer input
blur()Remove the focus from the completer input
isOpen()Returns the state of the dropdown

Local data

Create local data provider by calling CompleterService.local.

Parameters

NameTypeDescriptionRequired
dataany[] | Observable<any[]>A JSON array with the data to use or an Observable that emits oneYes
searchFieldsstringComma separated list of fields to search on. Fields may contain dots for nested attributes; if empty or null all data will be returned.Yes
titleFieldstringName of the field to use as title for the list item.Yes

Attributes

NameTypeDescription
descriptionFieldstringName of the field to use as description for the list item.
imageFieldstringName of the field to use as image url for the list item.

Remote data

Create remote data provider by calling CompleterService.remote.

Parameters

NameTypeDescriptionRequired
urlstringBase url for the searchYes
searchFieldsstringComma separated list of fields to search on. Fields may contain dots for nested attributes; if empty or null all data will be returned.Yes
titleFieldstringName of the field to use as title for the list item.Yes

Attributes

NameTypeDescription
descriptionFieldstringName of the field to use as description for the list item.
imageFieldstringName of the field to use as image url for the list item.
urlFormater(term: string) => stringFunction that get's the searchterm and returns the search url before each search.
dataFieldstringThe field in the response that includes the data.
requestOptionsRequestOptions (@angular/common/http)HTTP request options that should be sent with the search request.

CSS classes

  • .completer-holder
  • .completer-input
  • .completer-dropdown-holder
  • .completer-dropdown
  • .completer-searching
  • .completer-no-results
  • .completer-row
  • .completer-image-holder
  • .completer-image
  • .completer-image-default
  • .completer-title
  • .completer-description
  • .completer-list-item-holder
  • .completer-list-item
  • .completer-selected-row

Credits

  • This product uses the TMDb API but is not endorsed or certified by TMDb

版本与发布记录

@akveo/ng2-completer 共发布 1 个版本,首次发布于 2020/03/23;过去 12 个月发布了 0 个版本。

版本发布日期距今
9.0.1latest2020/03/236 年前

关于 @akveo/ng2-completer 的常见问题

@akveo/ng2-completer 是什么?

Temporary fork of https://github.com/oferh/ng2-completer to fix build issue

如何安装 @akveo/ng2-completer?

在项目目录运行 npm install @akveo/ng2-completer,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@angular/core(>= 6.0.0)、@angular/forms(>= 6.0.0)、@angular/common(>= 6.0.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@akveo/ng2-completer 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@akveo/ng2-completer 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@akveo/ng2-completer 可以商用吗?

@akveo/ng2-completer 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@akveo/ng2-completer 的下载量有多少?

根据 npm 官方下载统计,@akveo/ng2-completer 在 2026/10/06 – 2026/11/04 这 30 天内被下载 13,772 次,日均约 459 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@akveo/ng2-completer 还在维护吗?

最新版本 9.0.1 发布于 2020/03/23(6 年前);至今共发布 1 个版本,其中过去 12 个月发布了 0 个;首次发布于 2020/03/23。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。