2017-06-16 25 views
6

Tôi có ứng dụng Angular 4 SPA sử dụng bộ định tuyến Angular. Tôi muốn có siêu liên kết mở một thành phần trong hộp thoại mới bằng Bootstrap 4. Tôi đã biết cách mở hộp thoại phương thức từ một hàm.Hộp thoại số 4 và hộp thoại phương thức

Nhưng cách mở bằng siêu liên kết?

<a [routerLink]="['/login']">Login</a> 

Tôi muốn rời khỏi thành phần hiện tại của mình và chỉ hiển thị hộp thoại phương thức ở phía trước.

Một câu hỏi khác - có thể thực hiện điều đó theo chương trình không? Để tôi có thể

this.router.navigate(['/login']); 

và hộp thoại chế độ đăng nhập được hiển thị trên thành phần hiện tại?

Mọi đề xuất?

Trả lời

6

Đoán tốt nhất của tôi là bạn có thể muốn đăng ký tuyến đường được kích hoạt và thay đổi thông số trong tuyến đường để kích hoạt phương thức.

import { ActivatedRoute, Params } from '@angular/router'; 
import { Component, OnInit } from '@angular/core'; 

@Component({ 
    selector: 'cmp1', 
    templateUrl: './cmp1.component.html', 
    styleUrls: ['./cmp1.component.css'], 
}) 
export class Cmp1 implements OnInit { 

    constructor(private activatedRoute: ActivatedRoute) { 
    } 

    ngOnInit() { 
     this.activatedRoute.params.subscribe(params => { 
      if (params["modal"] == 'true') { 
       // Launch Modal here 
      } 
     }); 
    } 
} 

Tôi tin rằng sau đó bạn sẽ có một liên kết mà nhìn một cái gì đó như thế này: <a [routerLink]="['/yourroute', {modal: 'true'}]">

Better ví dụ có thể được tìm thấy ở đây: Route Blog

+0

Cảm ơn bạn đã gợi ý. Thành phần nào sẽ được ánh xạ tới "/ yourroute"? Nó sẽ là Cmpl? – Sergey

+0

Có vẻ như bạn thực sự muốn thay đổi thông số tuyến đường thay vì tuyến đường ... Tôi chưa từng làm điều đó trước đây, nhưng bạn có thể xem [link] này (https://stackoverflow.com/questions/40283562/ how-to-change-only-params-of-route-in-angular2) – birwin

Các vấn đề liên quan