javascript - Unknown provider: toasterProvider <- toaster <- RugHttpInterceptor <- $http <- ng1UIRouter -


i working on interceptors display toast msg if app caught http error in responseerror code. using angularjs interceptor. mean.js app.

interceptor code

angular.module('rugcopro')  .factory('rughttpinterceptor', ['$q', 'session', '$state', 'toaster', function($q, session, $state, toaster) {      return {                 'request': function(config) {             console.log("inside request.");              return config;         },                 // optional method                 'response': function(response) {             // on response success             console.log('inside of response');              return response;         },          // optional method          'responseerror': function(rejection) {             // here can in response error, handle errors, present error messages etc.             if(rejection.status === 401){                 console.log( "inside response error : "+ rejection.status);                 $state.go('auth');             }              // console.log("inside response error " + rejection.status);             return $q.reject(rejection);         }     }; }]); 

error: error updated pic

i trying find out solution stuck hours...

app.js

angular.module('rugcopro', [     'ngmaterial',     'ngmdicons',     'ui.router',     'e3-core-ui.services',      'e3-core-ui.utils'   ])  .config(['$stateprovider', '$routeprovider','$httpprovider','$mdthemingprovider', '$mdiconprovider', function($stateprovider, $routeprovider, $httpprovider, $mdthemingprovider, $mdiconprovider) {           //rug interceptor code     $httpprovider.interceptors.push('rughttpinterceptor'); ... } 

scripts , css using npm install , add in gruntfile.js

"node_modules/angularjs-toaster/toaster.css",
"node_modules/angularjs-toaster/toaster.js",

gruntfile.js

module.exports = function(grunt) {    grunt.initconfig({     pkg: grunt.file.readjson('package.json'),      concat: {       options: {         separator: ';'       },       dist: {         src: ['front-end/src/*.js', 'front-end/src/controllers/**/*.js', 'front-end/src/services/**/*.js'],         dest: 'public/js/<%= pkg.name %>.min.js'       },       lib:{         src: [           "node_modules/angular/angular.min.js",           "node_modules/angular-route/angular-route.min.js",           "node_modules/angular-aria/angular-aria.min.js",           "node_modules/angular-animate/angular-animate.min.js",           "node_modules/angular-material/angular-material.min.js",           "node_modules/moment/moment.min.js",           "front-end/lib/e3-core-ui.js",           **// angularjs -toaster           "node_modules/angularjs-toaster/toaster.min.js",**           "node_modules/angular-material-icons/angular-material-icons.min.js",           "node_modules/angular-ui-router/release/angular-ui-router.min.js"         ],         dest: 'public/js/libs.min.js'       },       lib_debug:{         src: [           "node_modules/angular/angular.js",           "node_modules/angular-route/angular-route.js",           "node_modules/angular-aria/angular-aria.js",           "node_modules/angular-animate/angular-animate.js",           "node_modules/angular-material/angular-material.js",           "node_modules/moment/moment.js",           "front-end/lib/e3-core-ui.js",           **// angularjs -toaster           "node_modules/angularjs-toaster/toaster.js",**           "node_modules/angular-material-icons/angular-material-icons.js",           "node_modules/angular-ui-router/release/angular-ui-router.js"         ],         dest: 'public/js/libs.js'       },       css:{         src:[           "node_modules/angular-material/angular-material.css",           "front-end/lib/e3-core-style.min.css",           "front-end/style/app.css",           **// angularjs -toaster           "node_modules/angularjs-toaster/toaster.css",**         ],         dest:'public/css/lib.css'       }     },     uglify: {       options: {         banner: '/*! <%= pkg.name %> <%= grunt.template.today("dd-mm-yyyy") %> */\n'       },       dist: {         files: {           'public/js/<%= pkg.name %>.min.js': ['<%= concat.dist.dest %>']         }       }     },   });    grunt.loadnpmtasks('grunt-contrib-uglify');   grunt.loadnpmtasks('grunt-contrib-concat');   grunt.loadnpmtasks('grunt-contrib-jasmine');   grunt.loadnpmtasks('grunt-jasmine-node-new');    /*grunt.registertask('cleanup', 'cleans build tmp files', function(){     var gruntconfig = grunt.config();     grunt.file.delete(gruntconfig.concat.dist.dest);   });*/    grunt.registertask('default', ['concat', 'uglify', 'jasmine_node', 'jasmine'/*, 'cleanup'*/]);   grunt.registertask('debug', ['concat', 'jasmine_node', 'jasmine']);   }; 

index.html

<html>     <head>         <% include partials/header.ejs %>         <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no" />         <link rel="stylesheet" href="/css/lib.css">         <link href="https://fonts.googleapis.com/icon?family=material+icons" rel="stylesheet">     </head>      <body ng-app="rugcopro" ng-controller="maincontroller ctrl" layout="column">         <!script src="https://cdnjs.cloudflare.com/ajax/libs/angularjs-toaster/1.1.0/toaster.min.js"></script>          <script src="/js/libs.js"></script>          <script src="/js/rugcopro.min.js"></script>  ... 

the angularjs-toaster module missing main application:

angular.module('rugcopro', [     'ngmaterial',     'ngmdicons',     'ui.router',     'toaster', // missing code     'e3-core-ui.services',      'e3-core-ui.utils'   ]); 

you can view example angularjs-toaster readme:

// display info toast no title angular.module('main', ['toaster', 'nganimate'])   .controller('mycontroller', function($scope, toaster) {     $scope.pop = function(){       toaster.pop('success', "title", "text");     };   }); 

you'll need include angularjs-toaster module in main template (index.html). here's example documentation:

<script src="https://cdnjs.cloudflare.com/ajax/libs/angularjs-toaster/1.1.0/toaster.min.js"></script>