2015-04-21 5 views
3

Это мой HTML:Угловое и Firebase приложение не будет работать

<!DOCTYPE html> 
<html ng-app="sampleApp"> 
    <head> 
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script> 
    <script src="https://cdn.firebase.com/js/client/2.2.2/firebase.js"></script> 
    <script src="https://cdn.firebase.com/libs/angularfire/1.0.0/angularfire.min.js"></script> 
    <script src="scripts/app.js"></script> 
    </head> 
    <body ng-controller="SampleCtrl"> 
    <!-- anything typed in here is magically saved to Firebase! --> 
    <input type="text" ng-model="data.text"/> 

    <!-- all changes from Firebase magically appear here! --> 
    <h1>You said: {{ data.text }}</h1> 
    </body> 
</html> 

и это мой app.js файл:

(function() { 

var app = angular.module("sampleApp", ["firebase"]) 

app.controller("SampleCtrl", function($scope, $firebaseObject) { 
    var ref = new Firebase("https://fiery-inferno-4208.firebaseio.com/data"); 
    var syncObject = $firebaseObject(ref); 

    syncObject.$bindTo($scope, "data"); 
}); 

})(); 

я скопировал из этого примера: https://www.firebase.com/docs/web/libraries/angular/quickstart.html

Когда я пытаюсь запустить его на своем компьютере, я получаю эти ошибки в консоли:

Uncaught SyntaxE rror: Неожиданный маркер <

и

Uncaught Ошибка: [$ Инжектор: modulerr]

Я не могу понять, что случилось!

+0

'Uncaught SyntaxError: Неожиданный токен <' означает, что в вашем скрипте есть опечатка. Я не вижу этого в этом примере. Но в инспекторе щелкните этот номер строки сообщений об ошибках, чтобы найти его. Следующая ошибка представляет собой только следующую ошибку для этой первой. – Rias

+0

Я голосую, чтобы закрыть это как опечатку/невоспроизводимую, так как ваш код даже не соответствует примеру, из которого вы его взяли. Прежде чем отправлять вопрос, вы должны внимательно изучить ваш код. Вы неправильно попытались превратить стандартную функцию в IIFE, чего не было в примере. – Claies

+0

Hi такой же выпуск здесь. Вы решили это? – JohnAndrews

ответ

0

$ инжектор: modulerr в основном означает, что модуль не загружается, может быть несколько вещей.

<script> 
 
     var myApp = angular.module("myApp", ["firebase"]); 
 

 
     myApp.controller("MyController", ["$scope", "$firebaseArray", 
 
     function($scope, $firebaseArray) { 
 
      //CREATE A FIREBASE REFERENCE 
 
      var ref = new Firebase("https://qst13ns0z14.firebaseio-demo.com/"); 
 

 
      // GET MESSAGES AS AN ARRAY 
 
      $scope.messages = $firebaseArray(ref); 
 

 
      //ADD MESSAGE METHOD 
 
      $scope.addMessage = function(e) { 
 

 
      //LISTEN FOR RETURN KEY 
 
      if (e.keyCode === 13 && $scope.msg) { 
 
       //ALLOW CUSTOM OR ANONYMOUS USER NAMES 
 
       var name = $scope.name || "anonymous"; 
 

 
       //ADD TO FIREBASE 
 
       $scope.messages.$add({ 
 
       from: name, 
 
       body: $scope.msg 
 
       }); 
 

 
       //RESET MESSAGE 
 
       $scope.msg = ""; 
 
      } 
 
      } 
 
     } 
 
     ]); 
 
    </script>
<!doctype html> 
 
<html ng-app="myApp"> 
 
    <head> 
 
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script> 
 
    <script src="https://cdn.firebase.com/js/client/2.2.1/firebase.js"></script> 
 
    <script src="https://cdn.firebase.com/libs/angularfire/1.0.0/angularfire.min.js"></script> 
 
    <link rel="stylesheet" href="/resources/tutorial/css/example.css"/> 
 
    </head> 
 

 
    <body ng-controller="MyController"> 
 

 
    <!-- CHAT MARKUP --> 
 
    <div class="example-chat l-demo-container"> 
 
     <header>Firebase Chat Demo</header> 
 

 
     <div class="example-chat-toolbar"> 
 
     <label for="nameInput">Username:</label> 
 
     <input ng-model="name" type="text" id="nameInput" placeholder="enter a username..."> 
 
     </div> 
 

 
     <ul id="example-messages" class="example-chat-messages"> 
 
     <li ng-repeat="msg in messages"> 
 
      <strong class="example-chat-username">{{ msg.from }}</strong> 
 
      {{ msg.body }} 
 
     </li> 
 
     </ul> 
 

 
     <footer> 
 
     <input ng-model="msg" ng-keydown="addMessage($event)" type="text" id="messageInput" placeholder="Type a message..."> 
 
     </footer> 
 
    </div> 
 
    </body> 
 
</html>

3

Ваш модуль не загружается, так как функция создания никогда не выполняется. Похоже, вам не хватает () прямо перед окончательным ; в вашем скрипте. Это исправляет это для меня:

(function() { 

    var app = angular.module("sampleApp", ["firebase"]) 

    app.controller("SampleCtrl", function($scope, $firebaseObject) { 
     var ref = new Firebase("https://fiery-inferno-4208.firebaseio.com/data"); 
     var syncObject = $firebaseObject(ref); 

     syncObject.$bindTo($scope, "data"); 
    }); 

})(); 
+0

Бинго. Должно было быть пойманным с отладчиком и никогда не доводилось до SO. – Kato

+0

Спасибо, что это был хороший улов, но я все еще получаю: Ошибка нечистоты: [$ injector: modulerr] – user3116173