我们尝试将我们的Angular 2应用程序(由我们的朋友编写,因此我们可能不知道所有细节)移动到Ionic 2.然而,我们还没有设法让它工作,因此问题下方。
编辑:我不确定目前的状态是什么,但我读了here:
«Angular路由器目前正在大力开发和重构。因此,Angular的路由器目前在Ionic中被禁用。»
code / metadata / build-script / package.json
中的哪个位置是激活路由器的入口点?我们在NgModule中有路由,但是当我们访问应用程序的主URL和子URL时,它似乎没有动作:
@NgModule({
declarations: [
AppComponent,
TestComponent,
AgendasListComponent,
TasksListComponent,
SnackBarComponent,
ConfirmationDialog,
AgendaComponent,
LoginComponent
],
entryComponents: [
ConfirmationDialog
],
imports: [
BrowserModule,
HttpModule,
MaterialModule.forRoot(),
AngularFireModule.initializeApp(firebaseConfig, firebaseAuthConfig),
RouterModule.forRoot([
{
path: '',
redirectTo: 'agendas',
pathMatch: 'full',
canActivate:[ RouterGuardService ]
},
{
path: 'agendas',
component: AgendasListComponent,
canActivate:[ RouterGuardService ]
}
...
答案 0 :(得分:15)
对于迟到的建议我很抱歉。我一直在那里你也是。说实话,Ionic是一场噩梦。不过很好,直到......
我们使用Ionic的原因是开发一次,并多次部署。网络,手机/平板电脑和可能的Windows(Linux?)......
但仅仅想到,我们正在构建的应用程序在网络上看起来很糟糕,就像一个放大的移动应用程序。我试了一下,以为我会调整一下。但是,我会留下最初的想法,不得不维持多个代码库。
这,在UI部分。但后来我发现随着Ng2的到来和发展,Ionic还选择引入NavController,而不是等待(被动)路由器...而这就是事情变得混乱......所以,除了不得不担心两个UI的代码库,我还必须为Router / NavController冲突重写它。
与此同时,我的目光落在Minks Gechev's Angular Seed上,并成功地将离子基质与它混合。
在对Ionic Github问题进行了沉默讨论之后,超过15人分享了我对NavController问题的担忧。其中一个离子核心开发人员试图让我们沉默,告诉我们“它将很快解决”,我要求“尽快定义”。他差点把我踢出去。
与此同时,我只是与Nathan's Angular Advanced Seed混在一起。 Nathan正在为Telerik工作,后者是开源Nativescript的驱动程序(现在它本身就是一个单独的基础)
起初,我持怀疑态度,因为Telerik倾向于过度承诺。我试图拍摄它,但它确实更快,它不是混合的,它是原生的。
我自己喜欢flexbox。所以,我会使用它搜索(web / windows)UI。为什么不温泉?
所以,去纳丹的种子,并在其中获得温泉。这是前端。后端 - Keycloak和vert.x
答案 1 :(得分:5)
而不是使用Angular 2路由器,建议使用NavController& Co:https://ionicframework.com/docs/v2/api/navigation/NavController/。
Ionic 2也支持Deep Links into your application,你已经注意到了。您可以在此处阅读官方博客文章:http://blog.ionic.io/deeplinking-in-ionic-apps/。
以下是此https://github.com/driftyco/ionic-plugin-deeplinks的插件,可让您创建自定义网址,以便将您的应用程序打开到特定视图,如果这是您的要求之一。