Menggunakan angular-ui-router, Bagaimana saya bisa menggunakan metode sebaliknya di $ stateProvider atau bagaimana saya bisa menggunakannya sama sekali?
95
Menggunakan angular-ui-router, Bagaimana saya bisa menggunakan metode sebaliknya di $ stateProvider atau bagaimana saya bisa menggunakannya sama sekali?
$stateProvider.otherwise
, jadi itu akan membantu saya)Jawaban:
Anda tidak bisa hanya menggunakan
$stateProvider
.Anda perlu memasukkan
$urlRouterProvider
dan membuat kode yang mirip dengan:The
/otherwise
url harus didefinisikan pada keadaan seperti biasa:Lihat tautan ini di mana ksperling menjelaskan
sumber
$stateProvider
. Ini kurang berfungsi jika Anda hanya ingin menampilkan template, tetapi tidak mengalihkan. Saya lebih suka jawaban @ juan-hernandez.otherwise
(dalam hal ini'/otherwise'
) harus cocok dengan nama negara bagian (parameter pertama ke.state
) atau nilai untukurl
opsi?Anda bisa dengan
$stateProvider
menggunakan sintaks menangkap semua ("*path"
). Anda hanya perlu menambahkan konfigurasi status di bagian bawah daftar Anda seperti yang berikut:Semua opsi dijelaskan di https://github.com/angular-ui/ui-router/wiki/URL-Routing#regex-parameters .
Hal yang menyenangkan dari opsi ini, sebagai lawan
$urlRouterProvider.otherwise(...)
, adalah Anda tidak dipaksa untuk mengubah lokasi.sumber
you're not forced to a location change
?/this/does/not/exist
, maka URL akan tetap seperti itu di bilah alamat. Solusi lain akan membawa Anda ke/otherwise
Anda juga dapat memasukkan $ state secara manual ke dalam fungsi sebaliknya, yang kemudian dapat Anda navigasikan ke status non-url. Ini memiliki keuntungan karena browser tidak mengubah bilah alamat, yang berguna untuk menangani kembali ke halaman sebelumnya.
sumber
Oke, momen konyol ketika Anda menyadari bahwa pertanyaan yang Anda ajukan sudah terjawab di baris pertama kode sampel! Lihat saja kode contoh.
Coba lihat di sini.
sumber
Saya hanya ingin berpadu dengan jawaban bagus yang telah disediakan. Versi terbaru
@uirouter/angularjs
menandai kelasUrlRouterProvider
sebagai tidak digunakan lagi. Mereka sekarang merekomendasikan penggunaanUrlService
sebagai gantinya. Anda dapat mencapai hasil yang sama dengan modifikasi berikut:Metode tambahan: https://ui-router.github.io/ng1/docs/1.0.16/interfaces/url.urlrulesapi.html
sumber
The jawaban yang diterima referensi
angular-route
bertanya tentangui-router
. Jawaban yang diterima menggunakan "monolitik"$routeProvider
, yang membutuhkanngRoute
modul (sedangkanui-router
membutuhkanui.router
modul)The jawaban tertinggi dinilai menggunakan
$stateProvider
sebaliknya, dan mengatakan sesuatu seperti.state("otherwise", { url : '/otherwise'... })
, tapi saya tidak dapat menemukan penyebutan "jika" dalam dokumentasi itu link . Namun, saya melihat yang$stateProvider
disebutkan dalam jawaban ini di mana dikatakan:Di situlah jawaban saya dapat membantu Anda. Bagi saya, cukup menggunakan
$urlRouterProvider
seperti ini:Saran saya konsisten dengan
ui-router
dokumentasi , ( revisi khusus ini ), yang menyertakan penggunaan serupa dari file.when(...)
metode (panggilan pertama ke fungsi):sumber