Saya memiliki arahan yang merupakan tajuk situs dengan tombol kembali dan saya ingin di klik untuk kembali ke halaman sebelumnya. Bagaimana saya melakukannya dengan sudut pandang?
Saya telah mencoba:
<header class="title">
<a class="back" ng-class="icons"><img src="../media/icons/right_circular.png" ng-click="history.back()" /></a>
<h1>{{title}}</h1>
<a href="/home" class="home" ng-class="icons"><img src="../media/icons/53-house.png" /></a>
</header>
dan ini adalah arahan js:
myApp.directive('siteHeader', function () {
return {
restrict: 'E',
templateUrl: 'partials/siteHeader.html',
scope: {
title: '@title',
icons: '@icons'
}
};
});
tetapi tidak ada yang terjadi. Saya melihat di API angular.js tentang $ location tetapi tidak menemukan apa pun tentang tombol kembali atau history.back()
.
javascript
angularjs
baba-dev
sumber
sumber
Jawaban:
Anda perlu menggunakan fungsi tautan dalam arahan Anda:
Lihat jsFiddle .
sumber
Rute sudut menonton lokasi peramban, jadi hanya dengan
window.history.back()
mengklik sesuatu akan berhasil.HTML:
JS:
Saya biasanya membuat fungsi global yang disebut '$ kembali' pada pengontrol aplikasi saya, yang biasanya saya taruh di tag tubuh.
Lalu di mana saja di aplikasi saya yang bisa saya lakukan
<a ng-click="$back()">Back</a>
(Jika Anda ingin itu lebih dapat diuji, masukkan layanan $ window ke controller Anda dan gunakan
$window.history.back()
).sumber
Idealnya gunakan arahan sederhana untuk menjaga pengontrol bebas dari $ window yang berlebihan
Gunakan seperti ini:
sumber
Solusi bagus dan dapat digunakan kembali adalah dengan membuat arahan seperti ini :
maka gunakan saja seperti ini:
sumber
Jika berguna, saya mencapai "iterasi 10 $ digest () tercapai. Batalkan!" kesalahan saat menggunakan $ window.history.back (); dengan IE9 (berfungsi dengan baik di browser lain tentu saja).
Saya membuatnya bekerja dengan menggunakan:
sumber
window
. Anda tampaknya menggunakan$window
layanan Angular. Mungkin ini adalah akar masalahnya?Atau Anda cukup menggunakan javascript kode:
Suka:
sumber
Terjadi kesalahan sintaksis. Coba ini dan itu akan berhasil:
sumber
Sudut 4:
sumber
Bagi saya, masalah saya adalah saya harus menavigasi kembali dan kemudian beralih ke negara lain. Jadi menggunakan
$window.history.back()
tidak berfungsi karena untuk beberapa alasan transisi terjadi sebelum history.back () terjadi sehingga saya harus membungkus transisi saya dalam fungsi batas waktu seperti itu.Ini memperbaiki masalah saya.
sumber
Di AngularJS2 saya menemukan cara baru, mungkin hal yang sama tetapi dalam versi baru ini:
Setelah fungsi saya, saya dapat melihat bahwa aplikasi saya pergi ke halaman sebelumnya menggunakan lokasi dari angular2 / router.
https://angular.io/docs/ts/latest/api/common/index/Location-class.html
sumber