如何让Angularjs中的控制器刷新?
发布时间:2020-12-17 06:53:05 所属栏目:安全 来源:网络整理
导读:我正在为一个应用程序使用Ionic Framework,并坚持一个部分.在我的应用程序中,我有一个收藏夹视图,其中显示了用户在应用程序中其他地方喜欢的项目列表.问题是,控制器中的代码仅在第一次点击收藏夹路由时运行.如果用户然后在应用程序中的其他位置添加收藏夹,然
我正在为一个应用程序使用Ionic Framework,并坚持一个部分.在我的应用程序中,我有一个收藏夹视图,其中显示了用户在应用程序中其他地方喜欢的项目列表.问题是,控制器中的代码仅在第一次点击收藏夹路由时运行.如果用户然后在应用程序中的其他位置添加收藏夹,然后返回“收藏夹”视图,则不会重新生成列表.
在我的控制器中,我有以下内容: Favourites.all().then(function(results){ angular.forEach(results,function(value,key){ // add results to an array to present in the view }) }) 我有一个工厂,负责数据库查询: .factory('Favourites',function(DB){ var self=this; console.log("test 1"); self.all = function() { return DB.query('SELECT * FROM favourites') .then(function(result){ return DB.fetchAll(result); }); }; return self; }) 我的问题是,在用户将新收藏夹添加到数据库后,如何让收藏夹控制器刷新?我尝试将范围重新加载函数添加到控制器,并且还将reload:true添加到路由的$stateProvider,但两者都没有任何区别. 解决方法
从任何地方使用广播,并在任何地方捕捉它:
应用中的任何位置: $scope.onNewFavoriteHandler = function() { //Add to DB logic $rootScope.$broadcast('new-favorite'); } 在相关的控制器上: $scope.$on('new-favorite',function(event,args) { Favourites.all().then(function(results){ angular.forEach(results,key){ // add results to an array to present in the view }) }); // do what you want to do }) Nice artice if you wish to extend your knoledge (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- Angular2 – TypeScript:在AppComponent中超时后
- 如何为Angular Material 2对话框设置动画?
- twitter-bootstrap – 无法正确显示Twitter Boot
- .NET 的 WCF 和 WebService 有什么区别?(转载)
- 在bash脚本中检查C程序的返回值?
- AngularJS学习之旅—AngularJS Scope作用域(五)
- 2017 前端大事件和趋势回顾,2018 何去何从?
- scala – 用于Playframework 2.0中的身份验证和授
- 工作随笔(RMI、WebService、REST)
- 具有固定标题和Paginator的Angular 6材料数据表
热点阅读