【问题标题】:Issues with minification缩小问题
【发布时间】:2014-09-15 08:35:04
【问题描述】:

我决定为我的 Angularjs 应用程序从 socketIO 切换到 sockjs。我以前(使用socketIO)构建我的项目从来没有遇到过涉及缩小和连接的问题,但是当我现在构建我的项目时,我认为这个文件给了我来自这里的问题: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 安装中没有包含缩小文件。

这是浏览器控制台中的错误,在我看来是注入问题:

错误:[$injector:unpr]http://errors.angularjs.org/1.3.0-beta.13/$injector/unpr?p0=aProvider%20%3C-%20a%20%3C-ocketFactory%20%3C-%socket

更新: 为了测试是这个文件导致了问题,我将文件托管在 CDN 上,而不是缩小它。现在一切正常,所以一定是这个文件导致了问题。如果有人遇到这个问题,知道问题出在哪里会很有趣。

【问题讨论】:

  • $get 函数定义中使用了$timeout 是否有问题?我想你会想用 this.get = ['$timeout', function($timeout) { ... } ];

标签: javascript angularjs sockjs


【解决方案1】:

Github 上解决了这个问题。 @efeder 基本上是正确的(尽管它是 this.$get 而不是 this.get)。问题是 v0.0.1 没有正确的注释,但 v0.1(最新)修复了这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-29
    • 2012-01-14
    • 2010-12-22
    • 1970-01-01
    • 2011-07-31
    • 2012-01-05
    相关资源
    最近更新 更多