微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

routing – Angular 2错误:无法解析’RouteParams’的所有参数

尝试使用RouteParams来获取查询字符串参数,但我只是得到了错误

Cannot resolve all parameters for ‘RouteParams'(?). Make sure that all
the parameters are decorated with Inject or have valid type
annotations and that ‘RouteParams’ is decorated with Injectable.
angular2-polyfills.js:332 Error: Cannot read property ‘getoptional’ of
undefined…….

看看这个Plnkr.如何在不收到此警告的情况下使用RouteParams?

重要文件是:

boot.ts:

import {bootstrap} from 'angular2/platform/browser';
import {ROUTER_PROVIDERS,RouteParams} from 'angular2/router';
import {AppComponent} from './app/app.component';

bootstrap(AppComponent,[ROUTER_PROVIDERS,RouteParams]);

和app.component.ts:

import {Component,OnInit} from 'angular2/core';
import {RouteParams} from "angular2/router";

@Component({
  selector: 'app',template: `
    <p *ngIf="guid">guid gived is: {{guid}}</p>
    <p *ngIf="!guid">No guid given in query-string in URL</p>
  `
})
export class AppComponent implements OnInit {
  guid:string;

  constructor(private _params: RouteParams) {} //

  ngOnInit() {
    this.guid = this._params.get('guid');
  }

}

更新:

我没有任何路由,我只有认的根路由(如果我没有其他路由,那么可以称之为路由……).但正如Gianluca建议的那样,我添加了以下路由配置:

@RouteConfig([
  { path: '/:guid',name: 'Home',component: AppComponent,useAsDefault: true },])

但我仍然得到同样的错误(Plnkr更新)…

从中删除RouteParams
bootstrap(AppComponent,RouteParams]);

RouteParams由路由器提供.如果你自己提供它注入失败.

有关示例,请参见https://angular.io/api/router/Params. RouteParams只能注入路由器添加的组件.

Plunker example

原文地址:https://www.jb51.cc/angularjs/141302.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐