尝试使用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 },])
从中删除RouteParams
bootstrap(AppComponent,RouteParams]);
RouteParams由路由器提供.如果你自己提供它注入失败.
有关示例,请参见https://angular.io/api/router/Params. RouteParams只能注入路由器添加的组件.
原文地址:https://www.jb51.cc/angularjs/141302.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。