大佬教程收集整理的这篇文章主要介绍了在angularJS服务中收到新项目时重新加载离子ng-repeat列表,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
<ion-list show-delete="data.showDelete" id="deleteme"> <div class="list list-inset searchlist" > <label for="searchText" class="item item-input searchlabel" > <i class="icon ion-search placeholder-icon"></i> <input type='text' ng-model='searchText' placeholder="Search"/> </label> </div> <ion-item class="item-icon-left item-icon-right" ng-repeat="message in messageList | orderBy:'date':true | filter:searchText track by $id($index)" ng-click="openMessage(message.id)" > <i class="icon ion-record" style="color:#8EBF3F;font-size:15px;height:70%" ng-show='message.mesgRead == false'></i> <i class="" ng-show='message.mesgRead == true'></i> <h2 class="messagecontent" >{{message.mesgContent}} </h2> <p class="messagedate">{{message.displayDate}} </p> <i class="icon ion-chevron-right icon-accessory"></i> <ion-option-button class="button-assertive" style="line-height:73px;" ng-click="deleteMessage(message)"> Delete </ion-option-button> </ion-item> </ion-list>
这是控制器(代码片段):
.controller('MessagesCtrl',function($scope,MessagesService,$timeout,ProfileService,$window,$filter,$sce,$ionicLoading,$ionicPopup) { $scope.messageList = ""; console.log("check for messages..."); MessagesService.loadFromMessageDB().then(function (dbMessages) { $scope.messageList = dbMessages; });
这样运作良好,我的ng-repeat填充.
我正在使用PushPlugin,所以当我收到推送通知时,会触发位于我的MessagesService内的这个回调:
onNotificationResponse: function(sender,message,msgId,msgType,msgUrl) { console.log("myApp.onNotificationResponse:" + message + " msgUrl:" + msgUrl); var NowDate = new Date().getTime(); NowDate = moment(NowDate).format("ddd,Do MMM,H:mm"); var jsDate = new Date(); var tmpMessage = new myApp.Message(msgId,NowDate,sender,jsDate,msgUrl,false); messages.unshift(tmpMessage); messageDB.save(tmpMessage); },
我的问题是我不知道如何刷新我的重复列表.我试过添加$rootScope.$apply();到onNotificationResponse函数,但没有做任何事情.
那么如何将此新消息添加到ng-repeat列表中?
更新:
通过将此添加到onNotificationResponse函数:
$rootScope.$broadcast('newMessage',messages);
然后这个到控制器:
$scope.$on('newMessage',function(event,messages) { console.log("WOW,a new message!!! "); $scope.messageList = messages; $scope.$apply(); });
以上是大佬教程为你收集整理的在angularJS服务中收到新项目时重新加载离子ng-repeat列表全部内容,希望文章能够帮你解决在angularJS服务中收到新项目时重新加载离子ng-repeat列表所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。