2

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.

1 Answer 1

1

me again :D,

I solved the Problem. I defined the controller twice. One time in the html-tag and the other time in my routeprovider. So the code did everything twice.

And always in the second run, the variable self.messages_length was undefined.

I removed one definition and now everything works fine ;)

Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.