2014-09-15 2 views
1

Я решил переключиться с 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 вместо Минимизация его. Теперь все работает нормально, поэтому должен быть этот файл, вызывающий проблему. Было бы интересно узнать, в чем проблема, если кто-то столкнется с этим вопросом.

+0

Есть ли проблема, потому что $ timeout используется в определении функции $ get? Я бы подумал, что вы захотите использовать this.get = ['$ timeout', function ($ timeout) {...}]; – efeder

ответ

1

Решено на Github. @efeder был в основном правильным (хотя это this.$get, а не this.get). Проблема в том, что v0.0.1 не имеет соответствующих аннотаций, но v0.1 (последний) исправил это.

 Смежные вопросы

  • Нет связанных вопросов^_^