在Ionic 2应用程序中使用Angular 2路由器是否有意义?

时间:2017-02-10 21:15:47

标签: angular typescript ionic2 angular2-routing ng-modules

我们尝试将我们的Angular 2应用程序(由我们的朋友编写,因此我们可能不知道所有细节)移动到Ionic 2.然而,我们还没有设法让它工作,因此问题下方。

  1. Angular 2路由器在Ionic 2中工作吗?
  2. 在Ionic 2应用程序中使用Angular 2路由器是否有意义,还是应该直接使用DeepLinker之类的替代方案?
  3. 编辑:我不确定目前的状态是什么,但我读了here

      

    «Angular路由器目前正在大力开发和重构。因此,Angular的路由器目前在Ionic中被禁用。»

    1. 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 ]           
          }
          ...
      

2 个答案:

答案 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的插件,可让您创建自定义网址,以便将您的应用程序打开到特定视图,如果这是您的要求之一。