Преобразование маршрутизации Angular [2] V3, Dart 1 в Angular 5, Dart 2 - PullRequest
0 голосов
/ 14 ноября 2018

Я занят миграцией с 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,

enter image description here

Если я пытаюсь выполнить импорт, IntelliJ помечает это как ошибку:

import 'component/home/home-scene.template.dart' as 'home-scene-template';

enter image description here

В какой моментэтот шаблон сгенерирован для меня, чтобы я мог выполнить такой импорт, или я должен что-то делать с классом HomeScene, чтобы этот шаблон мог импортироваться?

HomeScene - это все еще стандартный компонентв формате Angular3:

@Component(
    selector: 'home-scene',
    // language=CSS
    styles: const[""" 
        ...
    """
    ],
    // language=HTML
    template: """
        ...
    """,
    providers: const [...],
    directives: const [...]
)
class AppHomeScene extends AppScene implements AfterContentInit, OnDestroy {

    ....

}

1 Ответ

0 голосов
/ 20 ноября 2018

Файл template.dart создается для каждого файла .dart, который имеет шаблон после запуска первой сборки в вашем приложении. IntelliJ не знает, как скомпилировать ваше приложение, прежде чем оно будет анализировать ваш код.

Предложите создать приложение и обновить результаты анализа.

...