Я просматриваю список Jobs
Нравится это (упрощен для демонстрации).Угловое наблюдение за функцией с значениями параметров
я могу получить доступ к информации из массива Jobs
супер просто, как это (Job.Name, Job.Date и т.д.)
<div ng-repeat="(key, Job) in Jobs" ng-show="Job.Status=='Active'">
<div class="newMessages">
{{hasNewCreatorMessages(Job.$id)}} New Messages
</div>
</div>
Однако я создал функцию, чтобы подсчитать количество сообщений осталось на что работа, которую я доступ как переменная выше, здесь полная функция:
$scope.hasNewCreatorMessages = function(jobID) {
var numNewMessages = 0;
var messages = firebase.child('messages');
messages.on('value', function(snap){
snap.forEach(function(child){
child.forEach(function(message){
if(jobID == message.val().jobID && message.val().newCreatorMessage) {
numNewMessages += 1;
}
});
});
});
console.log(numNewMessages);
return numNewMessages;
};
консоль выводит правильное количество новых сообщений (поэтому счетчик и функции работают правильно). Проблема в том, что в реальном представлении html он не обновляется, у меня есть ощущение, что оно связано с Angular Digest (что я не совсем понимаю). Иногда, когда я получаю доступ к странице из кеша, она работает правильно, но если я делаю жесткое обновление, она не отображает счет.
Это довольно большой беспорядок. Вы используете AngularFire здесь? «$ Id» предлагает так. Где находится остальная часть кода, объясняющая, что такое Джобс и как оно создано. Здесь очень сложно предложить какой-либо осмысленный совет. См. [Создание mcve] (http://stackoverflow.com/help/mcve). – Kato