New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details
Socket
Book a DemoSign in
Socket

angular-advanced-searchbox

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

angular-advanced-searchbox

A directive for AngularJS providing a advanced visual search box

latest
Source
npmnpm
Version
3.0.1
Version published
Maintainers
1
Created
Source

Build Status

A directive for AngularJS providing a advanced visual search box.

DEMO

Usage

Include with bower

bower install angular-advanced-searchbox

The bower package contains files in the dist/directory with the following names:

  • angular-advanced-searchbox.js
  • angular-advanced-searchbox.min.js
  • angular-advanced-searchbox-tpls.js
  • angular-advanced-searchbox-tpls.min.js

Files with the min suffix are minified versions to be used in production. The files with -tpls in their name have the directive template bundled. If you don't need the default template use the angular-paginate-anything.min.js file and provide your own template with the templateUrl attribute.

Load the javascript and css and declare your Angular dependency

<!-- dependency includes -->
<script src="bower_components/jquery/dist/jquery.min.js"></script>
<script src="bower_components/bootstrap/dist/js/bootstrap.min.js"></script>
<script src="bower_components/angular/angular.min.js"></script>
<script src="bower_components/angular-animate/angular-animate.min.js"></script>
<link rel="stylesheet" href="bower_components/bootstrap/dist/css/bootstrap.min.css">

<!-- optional for auto complete / suggested value feature -->
<script src="bower_components/angular-bootstrap/ui-bootstrap-tpls.min.js"></script>

<!-- angular advanced searchbox includes -->
<link rel="stylesheet" href="bower_components/angular-advanced-searchbox/dist/angular-advanced-searchbox.min.css">
<script src="bower_components/angular-advanced-searchbox/dist/angular-advanced-searchbox-tpls.min.js"></script>
angular.module('myModule', ['angular-advanced-searchbox']);

Define the available search parameters in your controller:

$scope.availableSearchParams = [
          { key: "name", name: "Name", placeholder: "Name..." },
          { key: "city", name: "City", placeholder: "City..." },
          { key: "country", name: "Country", placeholder: "Country..." },
          { key: "emailAddress", name: "E-Mail", placeholder: "E-Mail...", allowMultiple: true },
          { key: "job", name: "Job", placeholder: "Job..." }
        ];

Then in your view

<nit-advanced-searchbox
	ng-model="searchParams"
	parameters="availableSearchParams"
	placeholder="Search...">
</nit-advanced-searchbox>

The angular-advanced-searchbox directive uses an external template stored in angular-advanced-searchbox.html. Host it in a place accessible to your page and set the template-url attribute. Note that the url param can be a scope variable as well as a hard-coded string.

Benefits

  • Handles free text search and/or parameterized searches
  • Provides suggestions on available search parameters
  • Easy to use with mouse or keyboard
  • Model could easily be used as params for Angular's $http API
  • Twitter Bootstrap compatible markup
  • Works perfectly together with angular-paginate-anything (use ng-model as url-params)

Directive Attributes

NameDescription
ng-modelSearch parameters as object that could be used as params with Angular's $http API.
parametersList of available parameters to search for.
parametersDisplayLimitMaximum number of suggested parameters to display. Default is 8.
parametersLabelText for the suggested parameters label, e.g. "Parameter Suggestions".
placeholderSpecifies a short hint in the search box
searchThrottleTimeSpecifies the time in milliseconds to wait for changes in the ui until the ng-model is updated. Default is 1000ms.

Events

The directive emits events as search parameters added (advanced-searchbox:addedSearchParam), removed (advanced-searchbox:removedSearchParam and advanced-searchbox:removedAllSearchParam), enters the edit mode (advanced-searchbox:enteredEditMode), leaves the edit mode (advanced-searchbox:leavedEditMode) or the search model was updated (advanced-searchbox:modelUpdated). To catch these events do the following:

$scope.$on('advanced-searchbox:addedSearchParam', function (event, searchParameter) {
  ///
});

$scope.$on('advanced-searchbox:removedSearchParam', function (event, searchParameter) {
  ///
});

$scope.$on('advanced-searchbox:removedAllSearchParam', function (event) {
  ///
});

$scope.$on('advanced-searchbox:enteredEditMode', function (event, searchParameter) {
  ///
});

$scope.$on('advanced-searchbox:leavedEditMode', function (event, searchParameter) {
  ///
});

$scope.$on('advanced-searchbox:modelUpdated', function (event, model) {
  ///
});

Available Search Parameters Properties

NameDescriptionType
keyUnique key of the search parameter that is used for the ng-model value.string
nameUser friendly display name of the search parameter.string
placeholderSpecifies a short hint in the parameter search boxstring
allowMultipleShould multiple search parameters of the same key allowed? Output type changes to array of values. Default is false.boolean
suggestedValuesAn array of suggested search values, e.g. ['Berlin', 'London', 'Paris']string[]
restrictToSuggestedValuesShould it restrict possible search values to the ones from the suggestedValues array? Default is false.boolean

Full example:

$scope.availableSearchParams = [
          { key: "name", name: "Name", placeholder: "Name..." },
          { key: "city", name: "City", placeholder: "City...", restrictToSuggestedValues: true, suggestedValues: ['Berlin', 'London', 'Paris'] }
          { key: "email", name: "E-Mail", placeholder: "E-Mail...", allowMultiple: true },
        ];

Keywords

search

FAQs

Package last updated on 22 Mar 2018

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts