RouterOutlet trong Angular

    image.png

    Về định nghĩa và cách sử dụng router bạn có thể xem link cuối bài, trong bài này mình sẽ chia sẻ thêm về router-outlet.

    Router-outlet được sử dụng để điều hướng (route) cho các path url trong ứng dụng của bạn. NgModule

RouterModule

    Selectors

router-outlet

    Properties

    Property Description

@Output('activate')
activateEvents: EventEmitter<any>	
    
    
@Output('deactivate')
deactivateEvents: EventEmitter<any>	
    
    
isActivated: boolean	Read-only.
    
    
component: Object	Read-only.
    
    
activatedRoute: ActivatedRoute	Read-only.
    
    
activatedRouteData: Data	Read-only.

    Các thành phần trong router-outlet

    Template:

    outlet #myTemplateVar="outlet"

    Mô tả các dùng:

<router-outlet></router-outlet>
<router-outlet name='left'></router-outlet>
<router-outlet name='right'></router-outlet>

    Với mỗi router-outlet , nó sẽ emit một active event mỗi khi một component mới được khởi tạo và một deactive event khi nó bị huỷ.

<router-outlet
  (activate)='onActivate($event)'
  (deactivate)='onDeactivate($event)'></router-outlet>

    Và để hiểu rõ các thuộc tính của router-outlet, mình sẽ lấy ví dụ sau:

  • Truy cập phương thức / biến của ChildCoponent từ ParentComponent

    Ta có một component app root như sau:

@Component({
    selector: 'my-app',
    providers: [],
                  <router-outlet></router-outlet>`
})
export class AppComponent {

    constructor() {

    }
}

    ChildComponent:

@Component({
    selector: 'child',
    providers: [],
    templateUrl: `<div>Hello World</div>`
})
export class ChildComponent {

    constructor() {

    }
    my_var: boolean;
    myFunction(){
        console.log('success');
    }

}

    Ta sẽ set thuộc tính active trong router-outlet của ParentComponent như sau:

<div class="container">
    <router-outlet (activate)="onActivate($event)"></router-outlet>
  </div>


  onActivate(componentRef){
    console.log(componentRef.my_var);
    console.log(componentRef.myFunction());
  }

    Như vậy, thông qua property active của router-outlet ta đã truy cập được các phương thức / biến của thành phần con một cách dễ dàng. Ngoài ra, còn có các thuộc tính khác được liệt kê như bên dưới.

    Methods

    ngOnDestroy()

    Parameters There are no parameters.

    Returns void

    ngOnDestroy(): void

    Parameters There are no parameters.

    Returns void

    ngOnInit()

    ngOnInit(): void

    Parameters There are no parameters.

    Returns void

    detach()

    Được gọi khi RouteReuseStrategy detach subtree.

    detach(): ComponentRef<any>

    Parameters There are no parameters.

    Returns ComponentRef<any>

    attach() Được gọi khi RouteReuseStrategy re-attach một subtree đã được detach trước đó.

    attach(ref: ComponentRef<any>, activatedRoute: ActivatedRoute) Parameters ref ComponentRef activatedRoute ActivatedRoute

    **deactivate() **

    deactivate(): void

Parameters

There are no parameters.

    Returns void

    activateWith()

    activateWith(activatedRoute: ActivatedRoute, resolver: ComponentFactoryResolver)

Parameters

    activatedRoute ActivatedRoute

    resolver ComponentFactoryResolver

    Tham khảo router: https://viblo.asia/p/co-ban-ve-router-trong-angular-2-63vKjn7yK2R

Bình luận
Vui lòng đăng nhập để bình luận
Một số bài viết liên quan