在RC.1中使用新路由器时,我似乎无法扩展RouterOutlet
示例:
FOR v,e,p IN 1..50 INBOUND '(id of starting node a,b,etc.)' child
FILTER LENGTH(EDGES(child,v._id,'inbound'))==0 RETURN p.vertices
错误:
@角/路由器/索引"'没有导出的成员' RouterOutlet'。
我做错了什么或者是否在RC.1中使用新路由器?
import { Directive } from '@angular/core';
import { Router, ROUTER_DIRECTIVES, RouterOutlet } from '@angular/router';
@Directive({
selector: 'router-outlet'
})
export class RouterOutletDirective extends RouterOutlet {
}
所以它现在正在运行但是RouterOutlet用红色加下划线,类型为"任何"不是构造函数类型,激活部分也不起作用。我错过了什么吗?
答案 0 :(得分:4)
RouterOutlet
和RouterLink
不会从@angular/router
导出。最近已修复此问题,我希望此修复程序包含在RC.2中。
您可以从私有路径(src/...
)导入它们作为解决方法,直到新版本发布。
<强>提示强>
也就是说,还有一个新的路由器正在进行中。如果您目前正在尝试从测试版路由器或@angular/router-derprecated
迁移到@angular/router
,那么推迟到新的新路由器推出之前可能会更好。
答案 1 :(得分:3)
以下是RC 1版本的工作代码
import { Directive, Attribute, ViewContainerRef, DynamicComponentLoader } from '@angular/core';
import { Router, Routes, RouterOutletMap } from '@angular/router';
import { RouterOutlet } from '@angular/router/src/directives/router_outlet';
@Directive({
selector: 'router-outlet'
})
export class LoggedInRouterOutlet extends RouterOutlet {
constructor(parentOutletMap: RouterOutletMap, _location: ViewContainerRef, name: string){
super(parentOutletMap, _location, name);
}
//activate() {} //EXPIRED
unload(): void { }
loadedComponent: Object
isLoaded: boolean
load(factory, providers, outletMap: RouterOutletMap): any {
super.load(factory, providers, outletMap);
//DO YOUR CHECK HERE
return this.loadedComponent;
}
}