我有一个提供者(我也尝试过使用相同结果的控制器)。这是我的代码:
.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
})
但是在我的控制台中,我看到两个LOGS,事实上,我有两个socketio,每个都有一个事件监听器。我的控制台充满了双重消息。
任何提示?感谢。
答案 0 :(得分:1)
提供商应该是“工厂”,因此他们不能直接构建他们提供的服务,而只是提供一个get方法,由Angular调用以获得工厂。
它们的使用在Angular documentation中有清楚的描述。
因此,您可以在io.connect
方法中移动$get
调用。