我正在开发我的第一个离子应用程序。我已经完成了,当我做完它就完美了
ionic serve --open
或者当我在移动设备上的Ionic DevApp上打开它时。
当我创建.apk时,几乎所有功能都可以正常工作。但这不是:
<ion-tab [root]="tab1Root" [enabled]=" _tabs.textToEnableTabs !='AddListPage' " tabTitle="Pending Tasks" tabIcon="home"></ion-tab>
<ion-tab [root]="tab2Root" [enabled]=" _tabs.textToEnableTabs !='AddListPage' " tabTitle="Finished Tasks" tabIcon="information-circle"></ion-tab>
<ion-tab [root]="tab3Root" [enabled]=" _tabs.textToEnableTabs !='AddListPage' " tabTitle="Contact Author" tabIcon="contacts"> </ion-tab>
此代码检查我们是否在某个组件上,因此,如果我们在该组件上,则使选项卡不可单击。
正如我所说,此功能可完美地在开发中使用,而不适用于始终可单击选项卡的生产环境。因此[enabled]
标记或条件无法正常工作。我不知道。
可能是哪个问题?
如果有帮助,我可以在其中创建该属性的服务ShowTabsService
//ShowTabsService.ts
textToEnableTabs
然后在构造函数上初始化:
"ShowTabsService.ts constructor
constructor()
{
this.textToEnableTabs=""; /*value will change on the addList.ts constructor and on its onDestroy, to make tabs available again*/
}
当我在AddListPage的构造函数中时,选项卡不可单击,我这样做:
//AddListPage.ts
constructor(
private _viewController:ViewController,
private _tabs:ShowTabsService) {
this._tabs.textToEnableTabs=this._viewController.name; //this will be 'AddListPage' when we are on that component
}
在ngOnInit上,当我们离开该组件时,通过执行以下操作使选项卡再次可单击:
//AddListPage.ts
ngOnDestroy()
{
this._tabs.textToEnableTabs="";
}
也许这不是最好的方法(我对Angular和Ionic都是陌生的),但正如我所说,这对开发有效。当我安装签名的APK时不可以
答案 0 :(得分:0)
有人向我建议了解决方法here
问题在于代码的这一部分:
<ion-tab [root]="tab1Root" [enabled]=" _tabs.textToEnableTabs !='AddListPage' " tabTitle="Pending Tasks" tabIcon="home"></ion-tab>
我一直依靠类名,当您在生产环境中构建应用程序时,这些名称将被最小化,这就是为什么我的代码在开发模式下可以正常工作,而在生产环境中则无法工作的原因。
我建议在离子论坛上阅读this thread