2016-07-20 2 views
4

Я разрабатываю приложение с использованием Ionic, но кеширование работает не так, как ожидалось. Каждый раз, когда я переключаюсь с root.home.notifs на root.home.chats, вид обновляется chats (его контроллер повторно инициализируется).Ионное кэширование не работает

Я 2 вкладки:

<ion-footer-bar> 
    <ion-tabs class="tab-bottom tabs-striped"> 
     <ion-tab icon="ion-ios-chatboxes-outline" ui-sref="root.home.chats"> 
     </ion-tab> 
     <ion-tab icon="ion-ios-heart-outline" ui-sref="root.home.notifs"> 
     </ion-tab> 
    </ion-tabs> 
    </ion-footer-bar> 

И эти состояния (мои контроллеры пусты):

.state('root.home', { 
    abstract: true, 
    cache : true, 
    url: '/home', 
    templateUrl: 'components/home/templates/home.html' 
}) 
.state('root.home.chats', { 
    url: '/chats', 
    cache : true, 
    controller: 'ChatCtrl', 
    templateUrl: 'components/home/templates/home.chats.html' 
}) 
.state('root.home.notifs', { 
    url: '/notifs', 
    cache : true, 
    controller: 'NotifCtrl', 
    templateUrl: 'components/home/templates/home.notifs.html' 
}) 

Каждый вид имеет cache-view="true" и я настроен кэшированные таким образом $ionicConfigProvider.views.maxCache(100)

ПРИМЕЧАНИЕ: Я заметил, что эта ошибка зависит от того, в каком состоянии я перемещаюсь первым. Существует система auth, которая вызывает $state.$go('root.home.notifs'). Изменение этих изменений, представление которых кэшировано правильно

Любой вопрос о том, как это решить?

ответ

3

Попробуйте использовать это для кэширования передней обзорности $ionicConfigProvider.views.forwardCache(true);

+1

Спасибо, этот ответ спас мою задницу – jlstr

1

Попробуйте это:

.state('root.home', { 
    abstract: true, 
    cache : true, 
    url: '/home', 
    templateUrl: 'components/home/templates/home.html' 
}) 
.state('root.home.chats', { 
    url: '/chats', 
cache : true, 
    controller: 'ChatCtrl', 
    templateUrl: 'components/home/templates/home.chats.html' 
}) 
.state('root.home.notifs', { 
    url: '/notifs', 
cache : true, 
    controller: 'NotifCtrl', 
    templateUrl: 'components/home/templates/home.notifs.html' 
}) 
+0

Done, но я до сих пор та же проблема –

+0

Я думаю, проблема в chache ракурсе = «истина» использовать это: кэш-вид = «ложный» – CrazyVK56

+1

'cache-view =" true "' используется для того, чтобы сказать, что кеш-кеш-кеш-кеш, чего я хочу достичь. Во всяком случае, попробовал 'cache-view =" false "', но он не работает –

-1

Просто Вы можете использовать кэш-представление в HTML.No нужно использовать его на контроллер. Если вы хотите обновить свою страницу, используйте <ion-view title="Dashboard" cache-view="false">. Но если вы хотите кэшировать уры страницы затем положить <ion-view title="Dashboard" cache-view="true"> или просто <ion-view title="Dashboard">

+0

Если кто-то положил -1 на мой ответ, тогда объясните причину. – Anuj

+0

Причина, по которой я проигнорирован, заключается в том, что я написал в ответ, что я использую cache-view = true, и он не работает :) –

+0

Пожалуйста, создайте плункер для этого. Cache-view работает для меня – Anuj

Смежные вопросы