Anda dapat menggunakan reload
metode $route
layanan. Suntikkan $route
di pengontrol Anda dan kemudian buat metode reloadRoute
di komputer Anda $scope
.
$scope.reloadRoute = function() {
$route.reload();
}
Maka Anda dapat menggunakannya pada tautan seperti ini:
<a ng-click="reloadRoute()" class="navbar-brand" title="home" data-translate>PORTAL_NAME</a>
Metode ini akan menyebabkan rute saat ini dimuat ulang. Namun jika Anda ingin melakukan penyegaran penuh, Anda bisa menyuntikkan $window
dan menggunakannya:
$scope.reloadRoute = function() {
$window.location.reload();
}
Kemudian edit (ui-router):
Seperti yang disebutkan oleh JamesEddyEdwards dan Dunc dalam jawaban mereka, jika Anda menggunakan angular-ui / ui-router Anda dapat menggunakan metode berikut untuk memuat ulang keadaan / rute saat ini. Suntikkan $state
saja $route
dan kemudian Anda memiliki:
$scope.reloadRoute = function() {
$state.reload();
};
window
objek tersedia melalui$window
layanan untuk pengujian dan ejekan yang lebih mudah , Anda dapat menggunakan sesuatu seperti:Dan:
Sebagai catatan, saya tidak berpikir $ route.reload () sebenarnya memuat ulang halaman, tetapi hanya rute .
sumber
$window
sebagai gantinyawindow
.$window
doktor , terutama karenareloadPage
akan (lebih baik) dapat diuji saat digunakan$window
.Apakah caranya.
Tidak perlu untuk rute atau apa pun hanya js tua biasa
sumber
Mirip dengan jawaban Alexandrin, tetapi menggunakan $ state daripada $ route:
(Dari jawaban JimTheDev SO di sini .)
sumber
Jika menggunakan Angulars ui-router lebih maju yang saya pasti akan merekomendasikan maka Anda sekarang dapat menggunakan:
Yang pada dasarnya melakukan hal yang sama dengan jawaban Dunc.
sumber
Solusi saya untuk menghindari infinite loop adalah dengan membuat negara lain yang telah melakukan pengalihan:
sumber
2 Sudut
Saya menemukan ini ketika mencari Angular 2+, jadi inilah caranya:
sumber
Cukup mudah untuk hanya menggunakan
$route.reload()
(jangan lupa untuk menyuntikkan $ route ke controller Anda), tetapi dari contoh Anda, Anda bisa menggunakan "href" alih-alih "ng-href":Anda hanya perlu menggunakan ng-href untuk melindungi pengguna dari tautan yang tidak valid yang disebabkan oleh mereka mengklik sebelum Angular mengganti konten tag {{}}.
sumber
Pada Angular 1.5 - setelah mencoba beberapa solusi di atas yang ingin memuat ulang hanya data tanpa refresh halaman penuh, saya punya masalah dengan memuat data dengan benar. Saya perhatikan, bahwa ketika saya pergi ke rute lain dan kemudian saya kembali ke arus, semuanya berfungsi dengan baik, tetapi ketika saya hanya ingin memuat ulang rute saat ini menggunakan
$route.reload()
, maka beberapa kode tidak dijalankan dengan benar. Kemudian saya mencoba mengalihkan ke rute saat ini dengan cara berikut:dan dalam konfigurasi modul, tambahkan yang lain
when
:dan itu bekerja dengan baik untuk saya. Itu tidak me-refresh seluruh halaman, tetapi hanya menyebabkan pengontrol dan templat saat ini memuat ulang. Saya tahu ini agak berantakan, tapi itu satu-satunya solusi yang saya temukan.
sumber
var reload = $location.url(); $location.url(''); $timeout(function() { $location.url(reload); });
; tidak perlu membuat rute acak. Tetapi akan menarik untuk melihat kode apa yang tidak dievaluasi ulang untuk Anda. Sepertinya evenredirectTo
danresolve
fungsi dijalankan kembali secara normal$route.reload()
(lihat console.log's).dan di controller
dan dalam file rute
Jadi, Jika id yang dilewatkan dalam url sama dengan apa yang datang dari fungsi yang disebut dengan mengklik jangkar, maka cukup memuat ulang, kalau tidak ikuti rute yang diminta.
Tolong bantu saya meningkatkan jawaban ini, jika ini membantu. Any, saran dipersilahkan.
sumber
Ini dapat dilakukan dengan memanggil metode reload () dari objek window dalam JavaScript biasa
sumber
Saya akan menyarankan untuk merujuk halaman. Saran resmi
https://docs.angularjs.org/guide/$location
sumber
Ini dapat dilakukan dengan memanggil metode reload () dalam JavaScript.
sumber