Я решил переключиться с socketIO на sockjs для моего приложения Angularjs. У меня никогда не было проблем с созданием моего проекта раньше (с socketIO), который включает в себя минимизацию и concat, но когда я создаю свой проект, я думаю, что этот файл дает мне проблемы, которые отсюда: https://github.com/bendrucker/angular-sockjs, так как это единственный новый файл.Вопросы с уточнением
/*
* angular-sockjs v0.0.1
* (c) 2014 Ben Drucker http://bendrucker.me
* Based on https://github.com/btford/angular-socket-io
* License: MIT
*/
'use strict';
angular.module('bd.sockjs', [])
.provider('socketFactory', function() {
// when forwarding events, prefix the event name
var ioSocket;
// expose to provider
this.$get = function ($timeout) {
var asyncAngularify = function (socket, callback) {
return callback ? function() {
var args = arguments;
$timeout(function() {
callback.apply(socket, args);
}, 0);
} : angular.noop;
};
return function socketFactory (options) {
options = options || {};
var socket = options.socket || new SockJS(options.url);
var wrappedSocket = {
callbacks: {},
setHandler: function (event, callback) {
socket['on' + event] = asyncAngularify(socket, callback);
return this;
},
removeHandler: function(event) {
delete socket['on' + event];
return this;
},
send: function() {
return socket.send.apply(socket, arguments);
},
close: function() {
return socket.close.apply(socket, arguments);
}
};
return wrappedSocket;
};
};
});
Есть ли причина, по которой этот файл не будет минимизировать? Я знаю типичные проблемы минимизации Angularjs, поэтому я использовал синтаксис ввода строк во всех моих файлах. Тем не менее, я не вижу возможности сделать это с этим файлом, и в комплекте с Bower не включен мини-файл.
Это ошибка в консоли браузера, который смотрит на меня, как вопрос впрыска:
Ошибка: [$ Инжектор: unpr]? http://errors.angularjs.org/1.3.0-beta.13/ $ форсунка/unpr p0 = aProvider% 20% 3C-% 20а % 20% 3C-ocketFactory% 20% 3C-% гнездо
UPDATE: Чтобы проверить, что именно этот файл вызывает вопрос, который я размещенный файл на CDN вместо Минимизация его. Теперь все работает нормально, поэтому должен быть этот файл, вызывающий проблему. Было бы интересно узнать, в чем проблема, если кто-то столкнется с этим вопросом.
Есть ли проблема, потому что $ timeout используется в определении функции $ get? Я бы подумал, что вы захотите использовать this.get = ['$ timeout', function ($ timeout) {...}]; – efeder