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