2016-05-13 50 views
0

获取这种类型的数据水平您好所有如何从火力

是新的火力点和离子和我创建聊天应用程序,将 让我的应用程序用户能够直接与聊天另一个,我有 成功地能够注册用户;获取用户,也已经 能消息中的每个用户,但我的地方混乱的是我应该如何去 显示消息

这里是我的火力地堡结构

Firebase Structure

这里是我的看法代码

<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 > 

,这里是我的控制器

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

好吧,这是我已经能够得到的,我只是去beneth我的'$ scope.loadMessages =函数(){...}'和我添加了这个代码''scope.loadMessages();'当我重新加载我的浏览器时,我看到的只是**这个房间是空的,是第一个发布!**但相信我我已经添加了我的消息它...... **请问是什么做错了** – user3728868

回答

0

哇...编码涉及看到一个尖锐敏感的眼睛。我能够 找出问题。

该消息正在显示。

,我所做的就是我的loadMessage()函数有 $ scope.data.messages在我看来,我是NG-重复从一个非常 错误$范围,所以我将其更改为NG-重复=“数据data.messages”和 它的工作