2

我在我的应用程序中使用了 AngularJS ng-idle。因此,当我移动到任何其他选项卡时,浏览器选项卡上会显示“您的会话已过期”消息。我需要 ng-idle 但不想显示该消息。我怎么能限制。请帮我

app.config(['KeepaliveProvider', 'IdleProvider', function(KeepaliveProvider, IdleProvider) {
          IdleProvider.idle(25);
          IdleProvider.timeout(25);
          KeepaliveProvider.interval(50);
        }]);
4

3 回答 3

3

如果您正在使用ng-idle v1.0.0或更高版本,则TitleService其中包含一个TitleProvider with 选项以禁用默认启用的标题更改。

所以在你的狙击手中,只包括TitleProvider.enabled(false)

app.config(['KeepaliveProvider', 'IdleProvider', 'TitleProvider', function(KeepaliveProvider, IdleProvider, TitleProvider) {
          TitleProvider.enabled(false);
          IdleProvider.idle(25);
          IdleProvider.timeout(25);
          KeepaliveProvider.interval(50);
        }]);

如果您需要更多自定义,请阅读https://github.com/HackedByChinese/ng-idle/wiki/Title

于 2015-12-18T10:10:09.370 回答
3

您必须在标题中添加 idle-disabled="true"。

例如:

<title idle-disabled="true">Title</title>

或者,如果您想显示不同的消息,您可以在控制器中执行此操作:

Title.idleMessage('Blaba {{minutes}}:{{seconds}} blablabla');
于 2015-10-07T09:00:58.723 回答
2

上一个答案是推荐的方法;'hacky' 的替代方法是修改angular-idle.js,在第 340 行附近找到 'Title' 工厂,并在第 363 行注释掉一条语句:

  value: function(val) {
    if (angular.isUndefined(val)) return $document[0].title;

    //$document[0].title = val; --comment this out
  },
于 2015-10-12T08:59:06.250 回答