3

文字列などの単純なデータをルーティング パスから別のコンポーネントに渡す方法は 2 つあります。

最初の方法:

ルーティング側:

export const AppRoutes: Routes = [
  ...
  { 
    path: '/one', component: OneComponent, resolve: { foo: 'foo' }
  }
];

コンポーネント側:

@Component()
export class OneComponent implements OnInit {
    constructor(private route: ActivatedRoute) {}

    ngOnInit() {
        this.foo = this.route.snapshot.data['foo'];
    }
}

2 番目の方法:

ルーティング側:

const routes: RouterConfig = [
    ...
    {
      path: '/one', component: OneComponent, data : {some_data : 'some value'}
    }
];

コンポーネント側:

@Component()
export class OneComponent implements OnInit {
    constructor(private route: ActivatedRoute) {}

    ngOnInit() {
        this.obs = this.route
          .data
          .subscribe(v => console.log(v));
    }

    ngOnDestroy() {
        this.obs.unsubscribe();
    }
}

では、値をコンポーネントに渡す最良の方法はどれでしょうか? resolvedataプロパティの違いは何ですか?

4

1 に答える 1