我想使用路由器检索当前显示的URL(路由器)。为此,我导入路由器。
import {RouteParams,Router} from 'angular2/router';
接下来,我将它添加到我的组件的构造函数中。
constructor(public router : Router)
现在,每当我尝试在其上调用任何内容时,我都会收到错误,因为“路由器”仍未定义。
我读到有另一种使用'location'获取URL的方法,但这不是推荐的方法。但是,如果路由器不是实现这一目标的正确方法,我愿意接受任何建议。但我最好找出为什么在这种情况下未定义路由器。
ROUTER_PROVIDERS
已经指定如下:
bootstrap(AppComponent, [
ROUTER_PROVIDERS, HTTP_PROVIDERS,....])
答案 0 :(得分:0)
您的div #V5 img {
position:absolute;
right:0px;
}
应包含
index.html
AFAIK只能在有路径的组件上注入<script src="https://code.angularjs.org/2.0.0-beta.14/router.dev.js"></script>
。
或者,您可以将根路由器注入全局服务,然后在任何地方注入此服务。
答案 1 :(得分:0)
您需要在引导应用程序时指定std::lock_quard
:
ptr, SetPtr and Process
不要忘记将ROUTER_PROVIDERS
或import { ROUTER_PROVIDERS } from 'angular2/router';
bootstrap(AppComponent, [ ROUTER_PROVIDERS ]);
文件包含在主HTML文件中。
答案 2 :(得分:0)
您需要提及位置策略,尝试将其替换为您的引导程序:
bootstrap(AppComponent,[ROUTER_PROVIDERS,
provide(LocationStrategy, { useClass: HashLocationStrategy })]);
答案 3 :(得分:0)
我也有这个问题。我找到了一个有角度的github问题的解决方法(抱歉,我发现它无法发布链接)。基本上,只要在组件的模板中找不到路由器实例(或者在其上面的组件树中的任何位置),就不会提供路由器实例。
对我来说,我所要做的就是将<a [routerLink]="['/']"></a>
添加到最上面的组件模板中。这可能会在未来版本中修复,但截至目前(问题发布后一个月),问题仍然存在。
P.S。我使用新路由器而不是路由器弃用