RouterOutlet trong Angular

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>

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

Nguồn: viblo.asia

Bài viết liên quan

9 Mẹo lập trình Web “ẩn mình” giúp tiết kiệm hàng giờ đồng hồ

Hầu hết các lập trình viên (kể cả những người giỏi) đều tốn thời gian x

Can GPT-4o Generate Images? All You Need to Know about GPT-4o-image

OpenAI‘s GPT-4o, introduced on March 25, 2025, has revolutionized the way we create visual con

Khi nào nên dùng main, section, article, header, footer, và aside trong HTML5

HTML5 đã giới thiệu các thẻ ngữ nghĩa giúp cấu trúc nội dung web một cách có

So sánh Webhook và API: Khi nào nên sử dụng?

Trong lĩnh vực công nghệ thông tin và phát triển phần mềm, Webhook và API là hai th