0
类
我试图总结每个router.navigateByUrl
一类的函数实例化和打算调用相关地方的功能。但是这样做抛出'Supplied参数不匹配任何调用目标的签名'。我跟随在这么少的其他环节,但没有一个似乎是有帮助的在我的情况提供的参数不匹配,调用对象的任何错误签名会被抛出
commonRouter.ts
// have wrapped navigation to home in homePage
// so wherever is needed this homePage will be called instead of
//this.router.navigateByUrl('/home');
import {Router} from '@angular/router';
export class RouterComponent{
router:any;
constructor(private rt:Router){
this.router=rt;
}
homePage(){
this.router.navigateByUrl('/home');
}
}
someComponent.ts
// Importing the newly created typescript file
import {RouterComponent} from './../../app-routing-component';
@Component({
selector: 'app-login',
templateUrl: './login.component.html',
styleUrls: ['./login.component.less']
})
export class LoginComponent implements OnInit {
private ms:MainService= new MainService();
//Instantiating RouterComponent
private rt:RouterComponent = new RouterComponent(); // this line throwing error
constructor(private fb:FormBuilder) {}
someMethod(){
rt.homePage() // Calling homePage
}
//... rest of code
}
APP-routing.module.ts
// module where all the paths and component are declared
import {NgModule} from "@angular/core";
import {RouterModule, Routes} from "@angular/router";
import {HomeComponent} from "./home/home/home.component";
const routes: Routes = [
{
path: 'login', component: LoginComponent,
}, {
path: 'home', component: HomeComponent,
children: [{
path: "account",
component: AccountsComponent
},{
path: '**',
component: PageNotFoundComponent
}
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule {
}
谢谢,它解决了这个问题,我正在学习angular2,将了解有关@Injectable – brk
只需要在提供程序中添加一个更新的RouterComponent – brk
这是真的,但我只在答案中声明,并未添加到代码库,因为你也可以注册在你的'NgModule'使用它在你所有的成分等,而无需将其声明为供应商的所有需要它的类。然而这几类被注册到同一模块,以便角度来解决注射PARAMATERS。 –