3

angularjs プロジェクトでテストを実行する際に問題があります。「grunt test」を実行すると、次のようになります。

ReferenceError: io が定義されていません

node.js socket.ioサーバーであるポート3000を介してサーバーをローカルで実行しており、index.htmlに実装しています

<script src="http://localhost:3000/socket.io/socket.io.js"></script>

これは私がテストしている関数です:

$scope.editProject = function (dat) {
      $http({
        method: 'PUT',
        url: 'http://some.net/api/project/' + $routeParams.Id,
        data: angular.toJson(dat),
        headers: {'Content-Type': 'application/json'}
      })
      .success(function(d) {
        var time = $filter('date')(new Date(), 'dd/MM HH:mm:ss');
        var loc = '/project/' + $routeParams.Id;
        var head = {
          User : $rootScope.UserInfo.Username,
          Message: 'Some message ',
          Name : dat.ProjectName,
          url: loc,
          date: time,
          icon : 'icon-th-list'
        };
        socket.emit('UpdateHeader', head );
        $location.url('/project/' + $routeParams.Id);
      });
    };
4

1 に答える 1

2

プロジェクトに最後のYeomanをインストールすると、問題が解決します。これにより、 GruntBowerが自動的にインストールされます。その後、bower で socket.io クライアントをインストールできます。

grunt test                        # test your app
grunt server                      # preview your app
grunt                             # build the application for deployment

より多くのパッケージにはBower コンポーネントを使用します。

于 2013-07-04T08:38:51.300 に答える