i have a problem with this ng-repeat statement.
<div ng-repeat="m in mbct.messages track by $index" ng-click="mbct.message_click($index)" ng-class="mbct.set_class(m.gelesen)"> <div>ABS: <span ng-bind="m.abs"></span> </div> <div>Betreff: <span ng-bind="m.betreff"></span> </div> <div>Wann: <span ng-bind="m.timestamp"></span> </div> <hr> </div> Controller:
var self = this; self.messages = []; self.massages_length = ""; //initialize variables when app starts self.init = function(){ alert("Init-runs"); MessageService.get_messanges().then( function(response){ self.messages = response.data; self.messages_length = self.messages.length; console.log(self.messages_length); } ) }; self.get_message_loop = $interval(function(){ MessageService.get_messanges().then( function(response) { if(self.messages_length < response.data.length){ console.log("new message"); self.messages = response.data; self.messages_length = self.messages.length; console.log("self.messages_length:" + self.messages_length); } else{ console.log("no new message"); } } ); },500); And my Service:
gsgmain.factory('MessageService',['$http',function($http){ return{ get_messanges : function(){ var email = $("#php_username").html(); var data = {user_email: email, methode: "get_all_msg"}; var json_data = angular.toJson(data); return $http.post("php/server.php", json_data); }, send_message : function(abs,emp,message_text,betreff){ var data = {abs:abs, emp: emp, message: message_text,betreff:betreff,methode:"send_message"}; var json_data = angular.toJson(data); return $http.post("php/server.php",json_data); }, set_read: function(msg_id){ var data = {msg_id: msg_id,methode: "set_read"}; var json_data = angular.toJson(data); return $http.post("php/server.php",json_data); } } }]); The ng-repeat-statement has no output, since i added the if-else-statement in "get_message_loop" to check if there are new messages. Before the get_message_loop function looked like this:
self.get_message_loop = $interval(function(){ MessageService.get_messanges().then( function(response) { self.messages = response.data; } ); },500); and erverything works fine.
Could you tell me why?
Thank you in advance.