AngularDart 5子路由是否会刷新父路由

问题描述 投票:0回答:1

我有一个AngularDart 5应用程序,具有以下嵌套组件结构:

  • mainComponent与主路由器插座。它的路径是/
  • 组成A作为mainComponent的孩子。它也有自己的路由器插座,其路径是/a
  • 组成1作为A的孩子。它的路径是/a/1
  • 组件2作为A的另一个孩子。它的道路是 /a/2

1切换到2会触发重新加载/渲染页面a吗?

例如。在a播放视频时,将从1切换到2使视频重新加载?

如果是这样,可以预防吗?

我实际上是在问这个问题,因为对我来说,从1切换到2时,页面会重新加载/重新呈现。

编辑:

这是我的路由配置。

主要组成部分的路线:

class AppRoutePaths {
  static final portal = RoutePath(path: 'portal');
  static final workspace = RoutePath(path: 'workspace');
}

class AppRoutes {
  static final _default = RouteDefinition.redirect(
      path: '', redirectTo: AppRoutePaths.portal.toUrl());

  static final _workspaceRoute = RouteDefinition(
      routePath: AppRoutePaths.workspace,
      component:
          workspace_component.WorkspaceComponentNgFactory as ComponentFactory);

  static final all = [_default, _workspaceRoute];
}

和相应的路由器插座:

<router-outlet [routes]="AppRoutes.all"></router-outlet>

这些是组件A的路线:

class WorkspaceRoutePaths {
  static final dashboard =
      RoutePath(path: 'dashboard', parent: AppRoutePaths.workspace);

  static final settings =
      RoutePath(path: 'settings', parent: AppRoutePaths.workspace);
}

class WorkspaceRoutes {
  static final dashboard = RouteDefinition(
      routePath: WorkspaceRoutePaths.dashboard,
      component: dashboard_component_template.DashboardComponentNgFactory as ComponentFactory);

  static final settings = RouteDefinition(
      routePath: WorkspaceRoutePaths.settings,
      component: settings_component_template.SettingsComponentNgFactory as ComponentFactory);

  static final _default = RouteDefinition.redirect(
      path: '', redirectTo: WorkspaceRoutePaths.dashboard.toUrl());

  static final all = [dashboard, settings, _default];
}

和相应的路由器插座:

<router-outlet [routes]="WorkspaceRoutes.all"></router-outlet>
angular dart angular-dart angular-dart-routing
1个回答
0
投票

如果要重用组件,则需要将CanReuse mixin添加到组件中。

在组件A的情况下,它看起来像这样:

@Component(
    selector: "component-a",
    templateUrl: "component-a.html",
    styleUrls: ["component-a.css"],
    directives: [routerDirectives])
class A with CanReuse {...}
© www.soinside.com 2019 - 2024. All rights reserved.