AngularJS Toast Notifications

angular-toastr is an simple to use Angularjs Directive to create sexy toast notifications with ability to create custom notifiers.

NOTE: For angular 1.2.x support check angular-1.2 branch or download the 0.4.x release of angular-toastr.

angular-toastr was originally a port of CodeSeven/toastr. It could now show some differences with it.

The goal is to provide the same API than the original one but without jQuery and using all the angular power.


Use npm:

$ npm install angular-toastr

If you are not using npm (you should), you can use bower:

$ bower install angular-toastr

To use a CDN, you can include the next two lines:

<script src=”https://unpkg.com/angular-toastr/dist/angular-toastr.tpls.js”></script>
<link rel=”stylesheet” href=”https://unpkg.com/angular-toastr/dist/angular-toastr.css” />

Or you can grab the latest release and add both the css and javascript file:

<link rel=”stylesheet” type=”text/css” href=”angular-toastr.css” />
<script type=”text/javascript” src=”angular-toastr.tpls.js”></script>

Note: If you add a script tag for angular-toastr, keep in mind that you need the tpls version or the other depending if you want the default template or not (see below).

If you want animations, don’t forget to add angular-animate.

Then add toastr to your modules dependencies:

angular.module('app', ['toastr'])


Toastr usage is very simple, by default it comes with four types of notification messages:





Apart from that you can customize your basic toasts:

No title:

Closing toasts programmatically:

If no toast is passed in, all toasts will be closed.

Getting active (open) toasts:

Refreshing an opened toast:

The second parameter is optional and will fallback to the configured timeOut.

It return the number of active toasts in screen.

Other options

A toast has a isOpened flag to see whether it is opened or not.

Toastr customization

This library has two parts, a container and the toasts you put in it.

To configure the container you need to modify the toastrConfig, for example:

Those are the default values, you can pick what you need from it and override with your values.

  • autoDismiss If set, show only the most recent maxOpened toast(s)
  • containerId: The name of the container where you want to append your toasts (the container will be created for you).
  • maxOpened: Maximum number of toasts displayed at once.
  • newestOnTop: Add new toasts on top of the old one. Put on false to put them on the bottom.
  • positionClass: The position where the toasts are added.
  • preventDuplicates: Prevent duplicates of the last toast.
  • preventOpenDuplicates: Prevent duplicates of open toasts.
  • target: The element to put the toastr container.

To customize a toast you have two options. First, you can set a default option to be applied globally to all toasts in the same way you modified the container:

  • allowHtml: Your toast can use custom HTML here (See Issue 3)
  • closeButton: Whether to display an “X” close button on the toast.
  • closeHtml: Html element to be used as a close button.
  • extendedTimeOut: The timeout after you hover a toast.
  • extraData: If you override the template, you can pass global extra data to your toasts.
  • iconClasses: The default type classes for the different toasts.
  • messageClass: The class for the toast’s message.
  • progressBar: A progress bar to see the timeout in real time.
  • tapToDismiss: Whether the toast should be dismissed when it is clicked.
  • templates: To override the default path of the templates.
  • timeOut: The timeout before the toasts disappear.
  • titleClass: The class for the toast’s title.
  • toastClass: Base class for toasts.

Toasts have 3 different callbacks:

  • onHidden: A callback function called when a toast gets hidden.
    • First parameter: A boolean to see whether or not the toast was closed via click.
    • Second parameter: The whole toast that got hidden.
  • onShown: A callback function called when a toast is shown.
    • First parameter: The whole toast that got shown.
  • onTap: A callback function called when it is clicked.
    • First parameter: The whole toast that got clicked.

The second option is to pass a third parameter (or second if you don’t need a title). Let see some examples:

Toast with custom HTML (available in both title and message):

Toast with a close button:

Toast with a custom button for apple fans:

A pinky custom style (you can also create here new types with $decorate):

toast-pink is a custom class created for the occasion:

Toast template

If you want to use the built-in template, you can use the angular-toastr.tpls.js file.

If you decide that you don’t want to use the built-in one, you can always use angular-toastr.js file and then providing your own template like this:

The important part here is to have a key named templates/toastr/toastr.html. The module you run it is not important, you just need to do it after you load toastr.

NOTE: Due some limitations in Angular, you need to have your custom template cached before trying to use it.



Prakash S

Prakash S

I would like to introduce myself as a Software professional opting for the career in software industry. I’m Prakash S, a MCA graduate and trained as industry level practice for Software technology. Basically I am a PHP Developer but now days exploring more in HTML5, CSS, AngularJS and jQuery libraries.