【问题标题】:How prevent angular provider loads many times如何防止角度提供程序加载多次
【发布时间】:2013-12-03 08:04:49
【问题描述】:

我有一个提供者(我也尝试使用具有相同结果的控制器)。这是我的代码:

.provider('socketio', function() {
    this.socket = io.connect("//localhost);
    console.log("LISTENING...");

    this.$get = function() { [...] }
});

我是这样注射的:

.controller('HeaderCtrl', function($rootScope, $scope, login) { [...] }

.factory('login', function($location, socketio, $rootScope) {

    // socketio operations

})

但是在我的控制台中,我看到了两个日志,事实上,我有两个 socketio 用一个事件监听器来监听它们。我的控制台充满了双倍的消息。

有什么提示吗?谢谢。

【问题讨论】:

  • 你能把.provider的全身都给我看吗?你用什么版本的角度?
  • 您可以在浏览器控制台中放置断点并查看堆栈跟踪以获取一些提示。

标签: javascript angularjs socket.io


【解决方案1】:

提供者应该是“工厂”,因此他们不能直接构建他们提供的服务,而只是提供一个 get 方法供 Angular 调用以获取工厂。 Angular documentation 中清楚地描述了它们的使用。 所以也许你应该将io.connect 调用移到$get 方法中。

【讨论】:

    猜你喜欢
    • 2012-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-13
    • 1970-01-01
    • 1970-01-01
    • 2017-11-09
    • 1970-01-01
    相关资源
    最近更新 更多