- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在 ionic 框架上构建一个演示应用程序。我的演示 ionic 应用程序具有三种状态:
$stateProvider.state("app", {
abstract : true,
url : "/app",
templateUrl : "app/templates/theme.html"
});
$stateProvider.state("app.dashboard", {
url : "/dashboard",
views : {
"content" : {
templateUrl : "app/modules/dashboard/dashboard.html",
controller : "dashboardController"
},
"settings" : {
templateUrl : "app/templates/settings.html"
},
"menu": {
templateUrl: "app/templates/menu.html"
}
}
});
$stateProvider.state("app.demo", {
url : "/demo",
views : {
"content" : {
templateUrl : "app/modules/demo/demo.html",
controller : "demoController"
}
}
});
theme.html 看起来像这样:
<ion-side-menus enable-menu-with-back-views="false">
<ion-side-menu-content drag-content="true">
<ion-nav-bar class="bar-stable nav-title-slide-ios7 two-side" align-title="center">
<ion-nav-back-button class="button-clear inverse">
<i class="icon ion-ios7-arrow-back">
</i>< Back
</ion-nav-back-button>
<ion-nav-buttons side="left">
<button menu-toggle="left" id="menuBtn" class="button button-icon icon ion-navicon inverse"></button>
</ion-nav-buttons>
<ion-nav-buttons side="right">
<button menu-toggle="right" id="settingsBtn" class="button button-icon icon ion-gear-b inverse"></button>
</ion-nav-buttons>
</ion-nav-bar>
<ion-nav-view name="content">
</ion-nav-view>
</ion-side-menu-content>
<ion-side-menu side="left">
<ion-nav-view name="menu" animation="slide-left-right"></ion-nav-view>
</ion-side-menu>
<ion-side-menu side="right">
<ion-nav-view name="settings" animation="slide-left-right"></ion-nav-view>
</ion-side-menu>
</ion-side-menus>
Issue is when I am going from app.dashboard to app.demo first time, demoController is called. Then I go back to app.dashboard. And when again going to app.demo state any number of times, demoController is never called. app.demo view is cached. I don't know why.
此外,我不想在路由配置中放置cache-view=false或cache false,因为这会完全禁用该页面的缓存(向前和向后)。我想在向前方向(如 app.dashboard 到 app.demo)时重新加载页面,但在向后方向(如 app.demochild)时不重新加载页面(例如)-> app.demo。
如果我从 theme.html 中删除两个 ion-side-menu 标签,问题就会得到解决,每次前进时都会调用 demoController,但我希望两个 ion-side-menu 都存在在我的 theme.html
我什至禁用了前向缓存。
$ionicConfigProvider.views.forwardCache(false);
任何帮助将不胜感激。
最佳答案
Ionic 在更改路线时广播多个内容,例如“$ionicView.beforeEnter”、“$ionicView.enter”等。
编写条件来检查其是否处于向前方向/向后方向,并在广播处理程序中相应地调用 $state.reload()
$scope.$on("$ionicView.beforeEnter", function(event, data){
if()//check for the direction backward / forward
{
$state.reload();
}
});
关于angularjs - 当侧面菜单出现时 ionic 前 View 被缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37741853/
我是一名优秀的程序员,十分优秀!