我用Deep Linking创建了我的第一个Ionic应用程序。 不得不暂时放弃lazy-loading with deep links ...... 但是当你在其他地方导航时,我对URL的存在方式感到困惑,比如回到主页。人们如何围绕这个工作?只是做一些URL重写? 或者这样做可能会打破别的东西? 看起来你也不能轻易消灭这个网址,因为它会再次出现。
我已经看到了Ionic blog以及Github issues关于行为的热烈讨论。
似乎@IonicPage
可以控制自定义内容,但这只适用于延迟加载/模块吗?或者你可以在没有延迟加载的情况下使用注释吗?
有关如何最好地使用此功能的任何建议将不胜感激。
我还注意到了一些其他奇怪的行为,因为我用来保存对HomePage的引用的数据结构变得未定义,即使它被导出为常量。这是应用启动时的初始rootNav。 我不得不做一个kludgy hack来解决它,为它做好准备
if (page.home != undefined) { //Bug in Ionic perhaps
this.nav.setRoot(HomePage, params)
.catch((err: any) => {
console.log(`Didn't set HOME root: ${err}`);
});
} else {
this.nav.setRoot(page.component, params)
.catch((err: any) => {
console.log(`Didn't set nav root: ${err}`);
});
}
这是别人经历过的吗?任何建议,或者我没有看到的明显错误。欢呼声。
答案 0 :(得分:0)
首先,离子版中的导航自版本3.6.0以来(特别是使用制表符)非常错误,它们重构了URL的生成方式(它们现在更具可读性)。正如你已经提到的那样,github上存在许多未解决的问题,这些问题将在未来几周内根据团队进行修复(他们目前非常忙于重构v4 of ionic的整个框架)。
回答有关IonicPage装饰器的问题:
您也可以在不延迟加载页面的情况下使用它:
在主模块app.module.ts
中添加以下内容:
imports: [
BrowserModule,
IonicModule.forRoot(MyApp, {
preloadModules: true
})
],
preloadModules: true
告诉离子你想要急切地加载你的页面(而不是懒惰)。
在IonicPage
装饰器中,您可以配置启动时加载模块的优先级:
@IonicPage({
name: 'my-page',
priority: 'high'
})
对于priority
属性,值high
,low
和off
可用。 off
表示页面是延迟加载的。您可以在IonicPage装饰器的documentation中找到它。