2016-03-26 5 views
1

前に、私はangularjsとのチャットアプリケーションに関するチュートリアルの本を買った。実際には、この本はanglejsや他の情報についての情報を提供していますが、チャットアプリケーション自体は説明されていません。作者は解説なしにビルドするためのコードをすべて提供します。コードをコピー&ペーストするだけですが、そこにいくつかのコードは分かりません。送信メッセージのために、この関数のように:angleJsにはhasOwnPropertyとpushがありますか?

$scope.messageshistory = {}; 
    $scope.tmp = {}; 

    // send message 
    $scope.sendMessage = function(){ 
     $scope.messages = { 
      from  : $scope.datauser['data']['_id'], 
      fromname : $scope.datauser['data']['nama'], 
      to  : $scope.tmpuserid, 
      message : $scope.tmp['sendmessage'], 
      time  : moment() 
     }; 
      //event emit message 
     socket.emit('message',$scope.messages,function(callback){  
      if(!callback['error']){ 
      $scope.messages['time'] = moment($scope.messages['time']).format('DD-MMMM-YYYY hh:mm'); 

      if ($scope.messageshistory.hasOwnProperty($scope.tmpuserid)){ $scope.messageshistory[$scope.tmpuserid].push($scope.messages); 
       }else{ 
        $scope.messageshistory[$scope.tmpuserid] = []; 
        $scope.messageshistory[$scope.tmpuserid].push($scope.messages); 
       } 
       $scope.tmp['sendmessage'] = ''; 
      }else{ 
       var msg = callback['error']; 
       navigator.notification.alert(msg,'','Error Report', 'Ok'); 
      } 

      $scope.$apply(); 
     }); 
    }; 

私の質問は、のために実際に$scope.messageshistory.hasOwnProperty($scope.tmpuserid)は何かありますか? $scope.messageshistory[$scope.tmpuserid].push($scope.messages)は何をしているのですか?あなたの説明に感謝します

+0

これらは単純なJavaScriptメソッドです。Angularとは関係ありません。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/push –

+0

@ AlexanderO'Maraあなたは私の場合に説明を与えることができますか?これらのコードが実際にこの機能で何をしていますか? –

+0

上記のとおり、JSメソッドです。ドキュメントを読む。 –

答えて

0

$scope.messageshistoryは、ユーザIDごとのメッセージ履歴の連想配列です。 $scope.messageshistory.hasOwnProperty($scope.tmpuserid)は、ユーザがtempuseridを持つメッセージ履歴を持っているかどうかを確認します。その場合、$scope.messageshistory[$scope.tmpuserid].push($scope.messages)は、現在のユーザーとtempuseridの間のメッセージ履歴を表す配列にメッセージをプッシュします。

+0

多くのことを説明してくれてありがとう。しかし、それ以外はどうですか? []は何ですか? –

+0

tempuseridのメッセージ履歴がないので新しい配列が作成され、メッセージはこの配列 –

+0

にプッシュされますので、もし 'if'と' else'を削除して 'push'を使うと正しいのはbasicllyなので'hasownproperty'の有無にかかわらずすべてのメッセージをプッシュしますか? –

関連する問題