Ionic controller里的代码只能运行一次

本文介绍了解决Ionic框架中视图缓存导致的controller只执行一次的问题。提供了两种解决方案:一是使用$ionicView.enter事件确保代码每次页面加载时执行;二是通过设置ui-router的状态配置中的cache属性为false来禁用缓存。

解决办法

$scope.$on('$ionicView.enter', function(e) {

    //你要执行的代码放里面,这样保证每次都会执行

});

或者,

在ui-router里面禁止cache,加上cache:false

...
.state('tab.somepage', {
    url: '/somepage',
    cache:false, //加一句
    templateUrl: 'somepage.html'
    })
...

原因,引用Ionic官方文档

因为Ionic的新的视图缓存,controller只会在创建的时候调用一次,而不是每次页面变化时

With the new view caching in Ionic, Controllers are only called when they are recreated or on app start, instead of every page change.

就说之前为什么controller只能激活一次,好烦

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值