2016-05-26 14 views
1

angular2でルータを使用しようとしています。 1つのリンクをDesignerComponentにリダイレクトし、page._idRouteParamsとして渡しました。 angle2-betaではコードが正しく機能しました。以下 が私のコードです:routerがangular2-rc1で動作しない

<div [routerLink]="['Designer',{page_id: page._id}]" class="btn btn-xs btn-success" title="Design Page"> 
    <i class="fa fa-eye fa-fw"></i> 
</div> 

しかし、そのエラーの下に私を示す:

pages.component.ts私の見解で

import { Component, OnInit ,Input} from '@angular/core'; 
import {SearchPipe} from './../../shared/pipes/search-pipe.pipe'; 
import { GlobalObjectsService} from './../../shared/services/global/global-objects.service'; 
import { Router,Routes , ROUTER_DIRECTIVES, ROUTER_PROVIDERS} from '@angular/router'; 
import { DesignerComponent } from './../../+designer/designer.component'; 

@Component({ 
    moduleId: module.id, 
    selector: 'app-pages', 
    pipes: [SearchPipe], 
    directives: [ROUTER_DIRECTIVES], 
    providers: [ROUTER_PROVIDERS], 
    templateUrl: 'pages.component.html', 
    styleUrls: ['pages.component.css'] 
}) 
@Routes([ 
    {path: '/designer', component: DesignerComponent} 
]) 
export class PagesComponent implements OnInit { 

    @Input() pages:any;  
    constructor(private router:Router) { 

    } 
    ngOnInit() { } 
    selectPage(page_id:string){      
    } 

} 

、私は次のことを行っています

Argument of type '{ path: string; name: string; component: typeof DesignerComponent; }[]' is not assignable to parameter of type 'RouteMetadata[]' 

にリダイレクトしたいを引数としてpage_idをクリックしてリンクします。

任意の入力?

答えて

4

は、ルートメタデータにパラメータを追加します。

@Routes([ 
    {path: '/designer/:page_id', component: DesignerComponent} 
]) 

使用page._id routerLinkで直接、オブジェクトなし:

[routerLink]="['/designer',page._id]" 

UPDATEコンポーネントからパラメータ値にアクセス

:それは知られているネイティブのプロパティではありませんので、 ` 'routerLink' にバインドできません:エラーを示す

constructor(curr: RouteSegment) { 
     let itemID = curr.getParam("page_id"); 
    } 
+0

しかし、routeParamsが機能していないため、デザイナーコンポーネントのpage._idにどうやってアクセスできますか? –

+0

RouteSegmentを使用して、私は答えを更新しました。 –

+0

私はrouterLinkでタイプミスしました。 Designerの代わりに/ designer –

1

新しいRouteDefinitionにはnameというプロパティがありません。だから、ただ好きそれを削除:

@Routes([ 
    {path: '/designer', component: DesignerComponent} 
]) 

ビューは次のようになります。

<div [routerLink]="['/designer',{page_id: page._id}]" ... >

<a [routerLink]="['/designer',{page_id: page._id}]" ... > 
+0

しようとしましたthat.its ' –

+0

これに関する入力はありますか? –

+0

がありますか?申し訳ありません、私は今、私の電話に書いています。 。ほんの少しの時間を私に与えてください – Abdulrahman

関連する問題