2015-06-23 5 views
2

У меня есть клиент-серверное приложение, и я столкнулся с этой ошибкой: «Uncaught Error: [$ injector: modulerr]». я искал, и я нашел много ответов, но не из них исправлена ​​проблема .. Вот мой код клиента:

angular.module('myApp', [ 
 
    'btford.socket-io', 'ngRoute' 
 
]). 
 
factory('mySocket', function (socketFactory) { 
 
    var myIoSocket = io.connect('http://localhost:3000'); 
 

 
    mySocket = socketFactory({ 
 
    ioSocket: myIoSocket 
 
    }); 
 

 
    return mySocket; 
 
}) 
 
.controller('MyCtrl', function ($scope,$route, mySocket) { 
 
\t $scope.func = function(){ 
 
\t \t mySocket.emit('add user', "aaa"); 
 
\t }; 
 
});
<!doctype html> 
 
<html lang="en"> 
 
<head data-ng-app="myApp"> 
 
\t <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script> 
 
\t <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.8/angular.min.js"></script>  
 
\t <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.8/angular-route.js"></script> 
 
\t 
 
    <meta charset="UTF-8"> 
 
    <title>Socket.IO Chat Example</title> 
 
    <link rel="stylesheet" href="style.css"> 
 
</head> 
 
<body ng-init="func()" data-ng-controller="MyCtrl"> 
 
<ul class="pages"> 
 
    <li class="chat page"> 
 
     <div class="chatArea"> 
 
      <ul class="messages"></ul> 
 
     </div> 
 
     <input class="inputMessage" placeholder="Type here..."/> 
 
    </li> 
 
    <li class="login page"> 
 
     <div class="form"> 
 
      <h3 class="title">What's your nickname?</h3> 
 
      <input class="usernameInput" type="text" maxlength="14" /> 
 
     </div> 
 
    </li> 
 
</ul> 
 

 
<script src="https://code.jquery.com/jquery-1.10.2.min.js"></script> 
 
<script src="http://localhost:3000/socket.io/socket.io.js"></script><!-----------------------------------------> 
 
<script src="main2.js"></script> 
 
</body> 
 
</html>

Любые идеи, что может это исправить?

+0

возможного дубликата [AngularJS - неперехваченная Ошибка: \ [$ форсунки: modulerr \]] (HTTP: // stackoverflow.com/questions/27921623/angularjs-uncaught-error-injectormodulerr) –

+1

На вашем заводе вы используете io.connect. Где зависимость io? – nikhil

+0

Можете ли вы вставить ошибку, которую видите на консоли? –

ответ

0

Похоже, вам не хватает основного файла angular-socket-io/socket.js, который используется для загрузки модуля btford.socket-io. Все должно работать, как только вы включите это! Еще одно замечание: вы можете загружать только 1 библиотеку jQuery, они довольно большие и могут повредить время загрузки [Просто личное предложение :)].

Resouce: angular-socket-io : Install

0

Вы получаете [$ Инжектор: modulerr] ошибка означает, что это может быть из-за используемых модулей в вас приложение не загружается.

Попробуйте загрузить скрипт socket.io.js в разделе главы, аналогично угловым скриптам.

1

Фактически вы используете data-ng-app = "myApp" в head tag.so этот модуль доступен только внутри тега заголовка.

вы можете попытаться объявить в html тег. а затем попробовать ..

надеется получить у результата ...

Спасибо ..