将 Angular[2] V3, Dart 1 的路由转换为 Angular 5, Dart 2
Converting routing of Angular[2] V3, Dart 1 to Angular 5, Dart 2
我正忙于从 Dart1 迁移到 Dart2,结果,我不得不将 Angular 从 3 升级到 5。
我在路由迁移上卡住了...
这就是我们在 Angular2 中的内容,与 Angular3 中的内容相同:
@Component(
...
)
@RouteConfig(const [
/*Meta*/
const Route(path: "/home", component: AppHomeScene,
name: SceneRoute.APP_HOME_SCENE, useAsDefault: true),
const Route(path: "/project-home", component: ProjectHomeScene,
name: SceneRoute.PROJECT_HOME_SCENE,),
...
])
class AppBuild implements AfterContentInit, OnDestroy {
...
}
在 Angular5 中,我删除了那个 @RouteConfig
块,创建了一个 routes.dart
和一个 paths.dart
import 'package:angular_router/angular_router.dart';
import 'package:appbuild/enum/enums.dart';
class Paths {
static final home = new RoutePath(path: "home", useAsDefault: true, additionalData: SceneRoute.APP_HOME_SCENE);
...
}
和
import 'package:appbuild/paths.dart';
export 'paths.dart';
class Routes {
static final all = <RouteDefinition>[
/*Meta*/
RouteDefinition(routePath: Paths.home, component: AppHomeScene),
...
];
}
我目前有 component: AppHomeScene
,文档说它的格式应该是 hero_list_template.HeroListComponentNgFactory,
如果我尝试导入,IntelliJ 会将其标记为错误:
import 'component/home/home-scene.template.dart' as 'home-scene-template';
在什么时候为我生成的模板能够执行这样的导入,或者我应该对 HomeScene
class 做些什么才能使该模板可导入?
HomeScene
只是一个标准组件,仍处于其 Angular3 格式:
@Component(
selector: 'home-scene',
// language=CSS
styles: const["""
...
"""
],
// language=HTML
template: """
...
""",
providers: const [...],
directives: const [...]
)
class AppHomeScene extends AppScene implements AfterContentInit, OnDestroy {
....
}
template.dart 文件是为每个具有模板的 .dart 文件创建的,第一次构建是在您的应用程序上 运行 之后。 IntelliJ 在分析您的代码之前不知道要编译您的应用程序。
建议您构建您的应用,然后刷新分析结果。
我正忙于从 Dart1 迁移到 Dart2,结果,我不得不将 Angular 从 3 升级到 5。
我在路由迁移上卡住了...
这就是我们在 Angular2 中的内容,与 Angular3 中的内容相同:
@Component(
...
)
@RouteConfig(const [
/*Meta*/
const Route(path: "/home", component: AppHomeScene,
name: SceneRoute.APP_HOME_SCENE, useAsDefault: true),
const Route(path: "/project-home", component: ProjectHomeScene,
name: SceneRoute.PROJECT_HOME_SCENE,),
...
])
class AppBuild implements AfterContentInit, OnDestroy {
...
}
在 Angular5 中,我删除了那个 @RouteConfig
块,创建了一个 routes.dart
和一个 paths.dart
import 'package:angular_router/angular_router.dart';
import 'package:appbuild/enum/enums.dart';
class Paths {
static final home = new RoutePath(path: "home", useAsDefault: true, additionalData: SceneRoute.APP_HOME_SCENE);
...
}
和
import 'package:appbuild/paths.dart';
export 'paths.dart';
class Routes {
static final all = <RouteDefinition>[
/*Meta*/
RouteDefinition(routePath: Paths.home, component: AppHomeScene),
...
];
}
我目前有 component: AppHomeScene
,文档说它的格式应该是 hero_list_template.HeroListComponentNgFactory,
如果我尝试导入,IntelliJ 会将其标记为错误:
import 'component/home/home-scene.template.dart' as 'home-scene-template';
在什么时候为我生成的模板能够执行这样的导入,或者我应该对 HomeScene
class 做些什么才能使该模板可导入?
HomeScene
只是一个标准组件,仍处于其 Angular3 格式:
@Component(
selector: 'home-scene',
// language=CSS
styles: const["""
...
"""
],
// language=HTML
template: """
...
""",
providers: const [...],
directives: const [...]
)
class AppHomeScene extends AppScene implements AfterContentInit, OnDestroy {
....
}
template.dart 文件是为每个具有模板的 .dart 文件创建的,第一次构建是在您的应用程序上 运行 之后。 IntelliJ 在分析您的代码之前不知道要编译您的应用程序。
建议您构建您的应用,然后刷新分析结果。