Javascript 角度2 rc1:组件没有路由配置

Javascript 角度2 rc1:组件没有路由配置,javascript,typescript,routing,angular,Javascript,Typescript,Routing,Angular,首先,我不认为这个问题是重复的。如果是,对不起 我正在研究angular 2应用程序。几周前,我正在使用beta15。出于以下原因,我决定更新到rc1: 我更喜欢循序渐进地更新,而不是一次又一次地更新 这样做的话,我必须关注变更日志 第三方追随这一运动 当然,我遇到了一些问题,我手工更新了软件包 清理我的代码 但还有一个问题我无法解决。我有一个错误: 组件没有路由配置。我有嵌套的路由 另一个问题的区别在于,我的组件不是子组件,而是主组件 这是我的Routeconfig声明(我使用的是路由器已

首先,我不认为这个问题是重复的。如果是,对不起

我正在研究angular 2应用程序。几周前,我正在使用beta15。出于以下原因,我决定更新到rc1:

  • 我更喜欢循序渐进地更新,而不是一次又一次地更新
  • 这样做的话,我必须关注变更日志
  • 第三方追随这一运动
当然,我遇到了一些问题,我手工更新了软件包 清理我的代码

但还有一个问题我无法解决。我有一个错误:
组件没有路由配置
。我有嵌套的路由

另一个问题的区别在于,我的组件不是子组件,而是主组件

这是我的Routeconfig声明(我使用的是
路由器已弃用

@RouteConfig([
         { path: '/home',    name: 'Home',   loader: () => Routes.lazyLoad('component@home', 'HomeComponent'),   useAsDefault: true },
         { path: '/media/...',  name: 'Media', loader: () => Routes.lazyLoad('component@media', 'MediaComponent') },
         { path: '/channel/...',  name: 'Channel', loader: () => Routes.lazyLoad('component@channel', 'ChannelComponent') },
         { path: '/playlist',  name: 'Playlist', loader: () => Routes.lazyLoad('component@home', 'HomeComponent') },
         { path: '/medias',  name: 'Medias', loader: () => Routes.lazyLoad('component@medias', 'MediasComponent') },
    ])
export class MainComponent {
    private prodEnv: boolean = initialState.prodEnv;
}
Routes.lazyload()
是一个非常简单的函数,它使用
SystemJS
导入组件:

public static lazyLoad(ref: string, component: string): any {
        return System.import(ref)
            .then((m: any) => m[component])
            .catch((err: any) => {
                console.error(err);
                return err;
            });
    }
当然,
媒体
频道
也有一个
路由图

这是MediaComponents的
RouteConfig

@RouteConfig([
    { path: 'add',          name: 'Add',        component: AddComponent,   useAsDefault: true },
    { path: 'manage',       name: 'Manage',     component: ManageComponent },
    { path: 'edit/:id',     name: 'Edit',       component: EditComponent }
])
通道组件:

@RouteConfig([
    { path: 'add',          name: 'Add',        component: AddComponent,   useAsDefault: true },
    { path: 'manage',       name: 'Manage',     component: ManageComponent },
    { path: 'manage/:id',   name: 'ManageId',   component: ManageComponent },
    { path: 'edit/:id',     name: 'Edit',       component: EditComponent }
])

是的,我确定。我会尝试纠正Plunker,但我无法重现完全相同的环境。我会在完成此操作后更新我的问题。谢谢
app/parentA.component.ts
包含两个
ChildAComponent
类。如果在同一文件中有多个类,则在它们出现在文件中之前,您无法引用它们。是否引用在它们出现在文件中之前,请在
@RouteConfig()
中找到它们。请修复文件名,并将组件类移到
ParentAComponent
上。类似于
app/parentB.component.ts
。我可以自己做,但我不确定其确切意图是什么(尤其是重复的名称)好的,我不知道我不能引用使用后声明的类(可能是因为在Javascript中,变量声明在解释过程中被移动到上下文的顶部)。谢谢。plunk运行得很好。因此问题似乎更为严重。我正在尝试找出我的应用程序的哪一部分可以产生这个问题,我将更新我的问题。这是一个常见的错误。类不像变量那样被提升。另一种方法是使用
forwardRef(()=>someclasslower)
例如,当存在循环引用时。好吧,所以我不知道我做错了什么。由于此问题可能与
不推荐的路由器有关,而且我没有太多时间花在它上面,我会等待新路由器。当它更完整时,我会更新我的代码,如果我仍然存在问题,我会更新此qu以适应更新。