2016-05-13 11 views
0

abrufen Hallo alleWie diese Art der Ebene von Daten aus Feuerbasis

Am neu Feuerbasis und ionische und ich bin die Schaffung App im Chat, die erlauben meinen App Benutzer in der Lage sein, direkt online mit einander, ich habe erfolgreich in der Lage, Benutzer zu registrieren; Benutzer holt und Nachricht an der Lage gewesen, auch jeden Benutzer aber mein Ort der Verwirrung ist, wie ich die Nachricht

Hier anzuzeigen geh ist meine Firebase Struktur

Firebase Structure

Hier ist mein Sichtcode

<ion-view view-title="Home Page"> 

<ion-content delegate-handle="show-page" > 

    <!-- Loading Indicator --> 
    <div class="loading" 
     ng-if="data.loading" > 
     <ion-spinner icon="ripple" ></ion-spinner > 
     <p >Loading messages...</p > 
    </div > 

    <!-- Empty room message --> 
    <div class="loading" 
     ng-show="!data.loading && data.message.length == 0" > 
     <p >This room is empty, be the first to post!</p > 
    </div > 

    <!-- Discussion list --> 
    <div class="chat-messages"> 
     <ul> 
      <li ng-repeat="data in chatMessages"> 
       {{data.message}} 
      </li> 
     </ul> 
    </div> 

</ion-content> 

<ion-footer-bar keyboard-attach 
       class="bar-assertive item-input-inset" > 
    <label class="item-input-wrapper" > 
     <input type="text" 
       placeholder="Type your message" 
       ng-enter="sendMessage()" 
       ng-model="data.message" /> 
    </label > 
    <button class="button button-clear" 
      ng-click="sendMessage()" > 
     Send 
    </button > 
</ion-footer-bar > 

Und hier ist mein Controller

app.controller('chatCtrl', function ($scope, $state, $stateParams, $localStorage) { 
    $scope.data = { 
      messages: [], 
      message: '', 
      loading: true, 
      showInfo: false 
    }; 
    var to      = $stateParams.UserName; 
    $localStorage.from   = $stateParams.MyName; 



    var roomName = 'chat_'+(to<$localStorage.from ? to+'_'+$localStorage.from : $localStorage.from+'_'+to); 

    console.log(to+', '+$localStorage.from+' => '+ roomName); 


    var messagesRef = new Firebase("https://bigzill.firebaseio.com/chatMessages/"+roomName); 
    $scope.loadMessages = function() { 
     $scope.data.messages =$firebaseArray(messagesRef); 
     $scope.data.messages.$loaded().then(function(data){ 
      console.log("Angular fire $loaded"); 
      $scope.data.loading =false; 
      $ionicScrollDelegate.$getByHandle('show-page').scrollBottom(true); 
     }); 
    }; 
    $scope.sendMessage = function(){ 
      var to    = $stateParams.UserName; 
      $localStorage.from = $stateParams.MyName; 
      var from    = $stateParams.MyName; 
      var dataToDb   = {from: from, to: to, message: $scope.data.message,timestamp: new Date().getTime()}; 
      var roomName = 'chat_'+(to<from ? to+'_'+from : from+'_'+to); 
      var InsertChatRef = new Firebase('https://bigzill.firebaseio.com'); 
      var insertObj =InsertChatRef.child('chatMessages').child(roomName); 
      insertObj.push(dataToDb); 

      $scope.data.message = ''; 

    }; 
}); 
+0

okay, das ist, was ich in der Lage gewesen zu bekommen, ging ich nur beneth meiner '$ scope.loadMessages = function() {...}' und Ich habe diesen Code dazu '$ scope.loadMessages();' hinzugefügt und als ich meinen Browser neu geladen habe, sah ich nur das ** Dieser Raum ist leer, sei der erste, der posten! ** aber glaube mir, ich habe meine Nachricht bereits hinzugefügt dazu .... ** bitte was tue ich falsch ** – user3728868

Antwort

0

wow ... Codierung mit einem scharfen empfindlichen Augen sehen beteiligt sind. Ich konnte das Problem herausfinden.

Die Nachricht wird jetzt angezeigt.

, was ich tat, war, dass meine loadMessage() Funktion $ scope.data.messages hatte und meiner Meinung nach war ich ng-Wiederholung von einem sehr falsch $ Umfang, so dass ich ändern, um ng- repeat = "Daten in data.messages" und es funktionierte

Verwandte Themen