Untuk beralih di antara tampilan yang berbeda, Anda dapat langsung mengubah window.location (menggunakan layanan $ location!) Di file index.html
<div ng-controller="Cntrl">
<div ng-click="changeView('edit')">
edit
</div>
<div ng-click="changeView('preview')">
preview
</div>
</div>
Controller.js
function Cntrl ($scope,$location) {
$scope.changeView = function(view){
$location.path(view); // path not hash
}
}
dan konfigurasikan router untuk beralih ke parsial berbeda berdasarkan lokasi (seperti yang ditunjukkan di sini https://github.com/angular/angular-seed/blob/master/app/app.js ). Ini akan memiliki manfaat riwayat serta menggunakan ng-view.
Atau, Anda menggunakan ng-include dengan parsial yang berbeda dan kemudian menggunakan ng-switch seperti yang ditunjukkan di sini ( https://github.com/ganarajpr/Angular-UI-Components/blob/master/index.html )
<a href="https://stackoverflow.com/edit">Edit</a>
Angular akan memastikan bahwa klik tersebut tidak membuat ulang halaman. Perilaku ini dapat dimodifikasi sehingga memicu memuat ulang jika diinginkan.Jawaban yang diberikan benar-benar benar, tetapi saya ingin memperluas untuk pengunjung masa depan yang mungkin ingin melakukannya sedikit lebih dinamis -
Dalam tampilan -
Di controller -
Konsep dasar yang sama dengan jawaban yang diterima, hanya menambahkan beberapa konten dinamis untuk meningkatkan sedikit. Jika jawaban yang diterima ingin menambahkan ini, saya akan menghapus jawaban saya.
sumber
url
sebenarnya adalah alamat web lengkap , termasuk protokol (http: //) dan semuanya. Seperti yang tersirat oleh$location.path()
variabel Anda lebih baik digambarkan sebagai apath
.Saya punya contoh yang berfungsi.
Begini penampilan dokter saya:
Seperti apa bentuk parsial saya:
Seperti apa Ctrl saya:
aplikasi adalah modul saya:
Semoga ini bisa membantu!
sumber
Metode yang digunakan untuk semua jawaban sebelumnya untuk pertanyaan ini menyarankan untuk mengubah url yang tidak perlu, dan saya pikir pembaca harus menyadari solusi alternatif. Saya menggunakan ui-router dan $ stateProvider untuk mengaitkan nilai status dengan templateUrl yang mengarah ke file html untuk tampilan Anda. Maka itu hanya masalah menyuntikkan $ state ke controller Anda dan memanggil $ state.go ('state-value') untuk memperbarui tampilan Anda.
Apa perbedaan antara angular-route dan angular-ui-router?
sumber
Ada dua cara untuk ini:
Jika Anda menggunakan ui-router atau
$stateProvider
, lakukan sebagai:jika Anda menggunakan angular-router atau
$routeProvider
, lakukan sebagai:sumber
Tanpa melakukan perombakan penuh dari lingkungan perutean default (# / ViewName), saya dapat melakukan sedikit modifikasi tip Cody dan membuatnya bekerja dengan baik.
controller
pandangan
Apa yang membawa saya ke solusi ini adalah ketika saya mencoba untuk mengintegrasikan widget Kendo Mobile UI ke dalam lingkungan sudut. Saya kehilangan konteks controller saya dan perilaku tag anchor biasa juga dibajak. Saya membangun kembali konteks saya dari dalam widget Kendo dan perlu menggunakan metode untuk menavigasi ... ini berhasil.
Terima kasih untuk posting sebelumnya!
sumber
Semoga ini bisa membantu Anda
sumber
Fungsi kecil ini telah membantu saya dengan baik:
Anda tidak perlu path lengkap, hanya tampilan yang Anda gunakan
sumber