AngularJS внедряет сторонний модуль ngIdle - PullRequest
0 голосов
/ 07 декабря 2018

У меня есть контроллер, как показано ниже.

(function () {
"use strict";
var app = angular.module('Demo')
    .controller('MainController', ['$rootScope', '$scope', '$location', 'curUser',MainController]);


 function MainController($rootScope, $scope,  $location, curUser) {
       //some logic here  
 }());

Я попытался включить сторонний модуль с именем ngIdle, и результирующий код выглядит следующим образом.

(function () {
"use strict";
var app = angular.module('Demo', ['ngIdle'])
    .controller('MainController', ['$rootScope', '$scope', '$location', 'curUser','Idle', function ($rootScope, $scope, $location, curUser, Idle) {


    }]).config(function (IdleProvider, KeepaliveProvider) {
        // configure Idle settings
        IdleProvider.idle(5); // in seconds
        IdleProvider.timeout(5); // in seconds
        KeepaliveProvider.interval(2); // in seconds
    })
    .run(function (Idle) {
        // start watching when the app runs. also starts the Keepalive service by default.
        Idle.watch();
    });

}());

Теперь я получаюошибка как Ошибка: [$ injector: unpr] Неизвестный поставщик: curUserProvider <- curUser <- MainController.Вот фабричное определение curUser </p>

    (function () {
    "use strict";
        angular.module("services").factory("curUser", curUser)
           function curUser() {}
    }());

1 Ответ

0 голосов
/ 13 декабря 2018

curUser определен в модуле services, поэтому его необходимо добавить в качестве зависимости в вашем приложении.Это было бы так даже до добавления ngIdle.

var app = angular.module('Demo', ["ngIdle", "services"])

. Заводская функция также должна что-то возвращать.

function curUser() {
  return { username: 'fooBar'};
}

См. Рабочий plunker .

...