IdleProvider.windowInterrupt no es una función

Estoy tratando de obtener la implementación más básica posible de ng-Idle trabajando en node.js en mi devbox. Con este fin, tomé la muestra mínima que se muestra en este enlace y la instalé en lo que fue una instalación mínima de node.js , que implementé usando las instrucciones que he documentado en un sitio de intercambio de archivos en este enlace . Todo lo que hice con la aplicación node.js mínima de trabajo fue ir a una aplicación de trabajo minimalista,

1.) Tyoe bower install ng-idle en la carpeta raíz de la aplicación cliente
2.) Comenta todo el antiguo index.html
3.) Pegue el código siguiente desde el enlace anterior en index.html , y solo cambie los enlaces url a angular.js y angular-idle.min.js a las rutas relativas reales de esos archivos en el proyecto. (Confirmé que ambos enlaces apuntan a las bibliotecas de js reales.
4.) Escriba grunt serve en la raíz de la carpeta del cliente donde se encuentra la aplicación.

Los pasos anteriores iniciaron la aplicación en un navegador web, pero dieron el siguiente error de comstackción:

 Error: [$injector:modulerr] Failed to instantiate module demo due to: IdleProvider.windowInterrupt is not a function @http://localhost:9000/:122:9 

Si alguien está interesado en la aplicación de trabajo completa que recrea este problema simple, lo coloco en una bola de alquitrán y lo publico en un sitio para compartir archivos, que puede descargar haciendo clic en este enlace .

¿Qué pasos específicos deben tomarse para resolver este error para que ng-idle pueda ejecutarse en esta instalación básica de node.js?

Aquí está index.html :

   NgIdle Sample    var app = angular.module('demo', ['ngIdle']); app .controller('EventsCtrl', function($scope, Idle) { $scope.events = []; $scope.idle = 5; $scope.timeout = 5; $scope.$on('IdleStart', function() { addEvent({event: 'IdleStart', date: new Date()}); }); $scope.$on('IdleEnd', function() { addEvent({event: 'IdleEnd', date: new Date()}); }); $scope.$on('IdleWarn', function(e, countdown) { addEvent({event: 'IdleWarn', date: new Date(), countdown: countdown}); }); $scope.$on('IdleTimeout', function() { addEvent({event: 'IdleTimeout', date: new Date()}); }); $scope.$on('Keepalive', function() { addEvent({event: 'Keepalive', date: new Date()}); }); function addEvent(evt) { $scope.$evalAsync(function() { $scope.events.push(evt); }) } $scope.reset = function() { Idle.watch(); } $scope.$watch('idle', function(value) { if (value !== null) Idle.setIdle(value); }); $scope.$watch('timeout', function(value) { if (value !== null) Idle.setTimeout(value); }); }) .config(function(IdleProvider, KeepaliveProvider) { KeepaliveProvider.interval(10); IdleProvider.windowInterrupt('focus'); }) .run(function($rootScope, Idle, $log, Keepalive){ Idle.watch(); $log.debug('app started.'); });    

Idle and Keepalive events

  • {{event}}
Timeout in {{countdown}} seconds.
Change idle value
Change timeout value

Lo siento por eso. Ese repository está usando la técnica de control de fuente de git-flow , por lo que la twig de develop es donde va el trabajo no publicado, y el master representa la twig de lanzamiento. El index.html que estaba viendo incluye un ejemplo de cómo usar una característica que se agregó y que aún no se ha lanzado oficialmente.

IdleProvider.windowInterrupt adelante con el lanzamiento de las funciones pendientes, pero mientras tanto puede eliminar la línea IdleProvider.windowInterrupt , ya que no está disponible en la versión 1.1.1. El ejemplo index.html del lanzamiento se encuentra en el maestro .

Ejecuté su ejemplo con esa línea eliminada y funciona como se esperaba.