Apakah ada cara cerdas untuk kembali ke halaman terakhir di Angular 2?
Sesuatu seperti
this._router.navigate(LASTPAGE);
Misalnya, halaman C memiliki Go Backtombol,
Halaman A -> Halaman C, klik, kembali ke halaman A.
Halaman B -> Halaman C, klik, kembali ke halaman B.
Apakah router memiliki informasi riwayat ini?
angular
angular2-routing
Hongbo Miao
sumber
sumber
Location
menyatakan: "Catatan: lebih baik menggunakan layanan Router untuk memicu perubahan rute. Gunakan Lokasi hanya jika Anda perlu berinteraksi dengan atau membuat URL yang dinormalisasi di luar perutean." Jawaban @ Sasxa rupanya menunjukkan cara yang digunakanRouter
untuk melakukan ini. Namun,Location
metode ini jelas lebih nyaman. Adakah yang tahu mengapaRouter
metode ini mungkin lebih benar daripadaLocation
metode ini?Dalam versi final Angular 2.x / 4.x - inilah dokumen https://angular.io/api/common/Location
sumber
<button backButton>BACK</button>
Anda dapat menempatkan ini ke arahan, yang dapat dilampirkan ke elemen yang dapat diklik:
Pemakaian:
sumber
Diuji dengan Angular 5.2.9
Jika Anda menggunakan jangkar bukan tombol Anda harus membuat sebuah link yang pasif dengan
href="javascript:void(0)"
membuat sudut Lokasi bekerja.app.component.ts
app.component.html
sumber
javascript:void(0)
. Sesuatu seperti ...@Directive({ selector: '[clickPreventDefault]' }) export class ClickPreventDefaultDirective { @HostListener("click", ["$event"]) onClick($event: Event) { $event.preventDefault(); } }
Anda dapat menerapkan
routerOnActivate()
metode pada kelas rute Anda, ini akan memberikan informasi tentang rute sebelumnya.Kemudian Anda dapat menggunakan
router.navigateByUrl()
dan meneruskan data yang dihasilkan dariComponentInstruction
. Sebagai contoh:sumber
routerOnActivate
Juga berfungsi untuk saya ketika saya harus kembali seperti pada sistem file. PS @angular: "^ 5.0.0"
sumber
Saya membuat tombol yang bisa saya gunakan kembali di mana saja di aplikasi saya.
Buat komponen ini
Kemudian tambahkan ke template apa pun saat Anda membutuhkan tombol kembali.
Catatan: Ini menggunakan Bahan Sudut, jika Anda tidak menggunakan perpustakaan itu maka hapus
mat-button
dancolor
.sumber
Setelah semua jawaban yang luar biasa ini, saya harap jawaban saya menemukan seseorang dan membantu mereka. Saya menulis layanan kecil untuk melacak sejarah rute. Ini dia.
sumber
Cara saya melakukannya saat menavigasi ke halaman lain menambahkan param kueri dengan melewati lokasi saat ini
Baca param kueri ini di komponen Anda
Jika returnUrl hadir, aktifkan tombol kembali dan ketika pengguna mengklik tombol kembali
Ini harus dapat menavigasi ke halaman sebelumnya. Alih-alih menggunakan location.back saya merasa metode di atas lebih aman mempertimbangkan kasus di mana pengguna langsung mendarat ke halaman Anda dan jika ia menekan tombol kembali dengan location.back akan mengarahkan pengguna ke halaman sebelumnya yang tidak akan menjadi halaman web Anda.
sumber
Di RC4:
sumber
sumber
Location
layanan sebagai gantinya. API resmiSejak beta 18:
import {Location} from 'angular2/platform/common';
sumber
dalam penggunaan sudut 4
preserveQueryParams
, mis:Saat mengklik tautan, Anda dialihkan
edit/10?page=1
, melestarikan paramsref: https://angular.io/docs/ts/latest/guide/router.html#!#link-parameters-array
sumber
Solusi lain
window.history.back();
sumber