我开发了一种基于Ionic的混合应用程序。 现在我们有一个新的客户端需要相同的功能,但由于我不能向他推销相同的应用程序,我需要更改我的应用程序的L& F.
根据服务的响应,状态会被加载。它工作正常,但我的团队已经决定从侧面菜单更改为标签导航,这就是问题所在。
我们很乐意将状态定义和html保留为现在,因此,在未来,如果有新客户,我们可以参数化应用程序,而无需更改HTML,只需要一些javascript标记。< / p>
无论如何,这是动态的定义:
.state('menu.generico', {
url: "/trans/:capp/:cmod/:ctr",
resolve: {
someResolve: function($stateParams,$ionicHistory,$q, CashModals){
},
views: {
'menu-generico': {
templateProvider: function(){
}
}
}
});
此外,我有一个负责创建菜单的指令。 如果我想要侧边栏菜单或标签导航,我会告诉它。 无论如何,它返回的标签结构如下:
<cargar-menu-mobile>
<ion-nav-bar class="bar-positive nav-bar-container" nav-bar-transition="ios" nav-bar-direction="back" nav-swipe="">
<ion-nav-back-button class="hide" data-ng-click="myGoBack()"></ion-nav-back-button>
<ion-nav-buttons side="right" class="hide"></ion-nav-buttons>
<ion-tabs class="tabs-positive tabs-icon-top">
<ion-tab title="Posición" icon="ion-card" ui-sref="menu.generico" ng-click="tabChanged(1)">
<ion-nav-view name="menu-generico" cache-view="false"></ion-nav-view>
</ion-tab>
</ion-tabs>
</ion-nav-bar>
</cargar-menu-mobile>
所以,当我开始浏览应用程序时,导航会丢失它的线程。通过这个,我的意思是,如果我在选项卡的视图中导航一段时间,然后按第一个选项卡(menu-generico),最后我将后退按钮激活,但我不希望它被激活,因为选项卡是根状态。
有什么想法吗? 谢谢!
答案 0 :(得分:0)
如果你不想要后退按钮,
<ion-nav-back-button class="hide" data-ng-click="myGoBack()"></ion-nav-back-button>
删除此行。 Ionic为选项卡视图维护单独的历史记录。通过以下主题了解更多信息,
https://forum.ionicframework.com/t/keep-main-header-bar-disable-back-button-on/19868
答案 1 :(得分:0)
我最后将这些行添加到我的指令的tabChanged函数中:
$ionicHistory.nextViewOptions({
historyRoot: true
});
所以,这样,每个标签都是根。
现在我只需要识别每个州所属的标签,以便激活它的相应标签。
希望有人发现它有用。