Apa perbedaan antara [routerLink]
dan routerLink
? Bagaimana sebaiknya Anda menggunakan masing-masing?
Apa perbedaan antara [routerLink]
dan routerLink
? Bagaimana sebaiknya Anda menggunakan masing-masing?
Jawaban:
Anda akan melihat ini di semua arahan:
Saat Anda menggunakan tanda kurung, itu berarti Anda meneruskan properti yang dapat diikat (variabel).
<a [routerLink]="routerLinkVariable"></a>
Jadi variabel ini (routerLinkVariable) dapat didefinisikan di dalam kelas Anda dan harus memiliki nilai seperti di bawah ini:
export class myComponent {
public routerLinkVariable = "/home"; // the value of the variable is string!
Tetapi dengan variabel, Anda memiliki kesempatan untuk membuatnya dinamis bukan?
export class myComponent {
public routerLinkVariable = "/home"; // the value of the variable is string!
updateRouterLinkVariable(){
this.routerLinkVariable = '/about';
}
Jika tanpa tanda kurung Anda hanya melewatkan string dan Anda tidak dapat mengubahnya, kode itu sulit dikodekan dan akan seperti itu di seluruh aplikasi Anda.
<a routerLink="/home"></a>
PERBARUI:
Keistimewaan lain tentang menggunakan tanda kurung khusus untuk routerLink adalah Anda dapat meneruskan parameter dinamis ke tautan yang Anda navigasikan:
Jadi menambahkan variabel baru
export class myComponent {
private dynamicParameter = '129';
public routerLinkVariable = "/home";
Memperbarui [routerLink]
<a [routerLink]="[routerLinkVariable,dynamicParameter]"></a>
Jika Anda ingin mengklik tautan ini, itu akan menjadi:
<a href="https://stackoverflow.com/home/129"></a>
Asumsikan bahwa Anda pernah
const appRoutes: Routes = [
{path: 'recipes', component: RecipesComponent }
];
<a routerLink ="recipes">Recipes</a>
Artinya, mengklik hyperlink Resep akan melompat ke http: // localhost: 4200 / recipes
Asumsikan bahwa parameternya adalah 1
<a [routerLink] = "['/recipes', parameter]"></a>
Artinya, dengan meneruskan parameter dinamis, 1 ke link, lalu Anda membuka http: // localhost: 4200 / recipes / 1
Tautan Router
routerLink dengan tanda kurung dan tidak ada - penjelasan sederhana.
Perbedaan antara routerLink = dan [routerLink] sebagian besar seperti jalur relatif dan absolut.
Mirip dengan href yang mungkin ingin Anda buka ./about.html atau https://your-site.com/about.html .
Bila Anda menggunakan tanpa tanda kurung maka Anda menavigasi relatif dan tanpa params;
my-app.com/dashboard/client
"melompat" dari my-app.com/dashboard ke my-app.com/dashboard/client
<a routerLink="client/{{ client.id }}" .... rest the same
Ketika Anda menggunakan routerLink dengan tanda kurung maka Anda menjalankan aplikasi untuk menavigasi absolut dan Anda dapat menambahkan parameter bagaimana teka-teki tautan baru Anda
pertama-tama itu tidak akan menyertakan "lompatan" dari dasbor / ke dasbor / klien / client-id dan membawa Anda data klien / client-id yang lebih berguna untuk EDIT KLIEN
<a [routerLink]="['/client', client.id]" ... rest the same
Cara absolut atau braket routerLink memerlukan pengaturan tambahan dari Anda komponen dan app.routing.module.ts
Kode tanpa kesalahan akan "memberitahu Anda lebih banyak / apa tujuan []" saat Anda melakukan pengujian. Cukup periksa ini dengan atau tanpa []. Daripada Anda dapat bereksperimen dengan penyeleksi yang - seperti disebutkan di atas - membantu dengan perutean dinamis.
Lihat apa yang dibangun routerLink