8

我们已经尝试将我们的 Angular 2 应用程序(由我们的朋友编写,因此我们可能不知道所有细节)迁移到 Ionic 2。但是,我们还没有设法使它工作,因此下面有问题。

  1. Angular 2 路由器可以在 Ionic 2 中工作吗?
  2. 在 Ionic 2 应用程序中使用 Angular 2 路由器是否有意义,或者我们应该直接使用替代方案,例如DeepLinker

编辑:我不确定当前状态是什么,但我在这里读到:

«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 ]           
        }
        ...
    
4

2 回答 2

14

我很抱歉迟到的建议。我也去过你所在的地方。老实说,Ionic 是一场噩梦。不过很好,直到...

我们使用 Ionic 的原因是一次开发,多次部署。网络、手机/平板电脑,可能还有 Windows(Linux?)...

但只是想一想,我们正在构建的应用程序在网络上看起来很糟糕,就像一个放大的移动应用程序。我试了一下,想稍微调整一下。但是,我会留下整个最初的想法,不得不维护多个代码库。

这在 UI 部分。但后来我发现随着 Ng2 的到来和发展,Ionic 也选择了引入 NavController,而不是等待(反应式)路由器......这就是事情变得混乱的地方......所以,除了不得不担心两个UI 的代码库,我还必须为 Router / NavController 冲突重写它。

与此同时,我的目光落在了Minks Gechev 的 Angular Seed上,并成功地将 Ionic 基础与之混合。

在就 Ionic Github 问题进行了无声讨论之后,超过 15 人分享了我对 NavController 问题的担忧。其中一位 Ionic 核心开发人员试图让我们保持沉默,告诉我们“很快就会解决”,我要求“尽快定义”。他差点把我赶出去。

与此同时,我刚刚被Nathan 的 Angular Advanced Seed刺痛了。Nathan 为 Telerik 工作,后者是开源 Nativescript 背后的驱动程序(现在它本身是一个独立的基金会)

起初,我持怀疑态度,因为 Telerik 倾向于过度承诺。我试过射击它,但它确实更快而且它不是混合的,它是原生的。

我自己确实喜欢 flexbox。所以,我会使用它搜索(网络/Windows)用户界面。为什么不是温泉?

所以,去内森的种子,把温泉放进去。这是前端。后端 - Keycloak 和 vert.x

于 2017-03-18T17:08:04.743 回答
5

建议不要使用 Angular 2 路由器,而是使用 NavController & Co:https ://ionicframework.com/docs/v2/api/navigation/NavController/ 。

正如您自己所指出的,Ionic 2 还支持应用程序中的深层链接。您可以在此处阅读官方博客文章:http: //blog.ionic.io/deeplinking-in-ionic-apps/

这是此https://github.com/driftyco/ionic-plugin-deeplinks的插件,它允许您创建自定义 URL,如果这是您的要求之一,它将打开您的应用程序到特定视图。

于 2017-03-14T09:32:40.080 回答