Bagaimana untuk mengeksekusi AngularJS controller pada fungsi beban halaman?
Saat ini saya memiliki Angular.js halaman yang memungkinkan anda untuk mencari dan menampilkan hasil. Pengguna mengklik pada hasil pencarian, kemudian klik tombol kembali. Saya ingin hasil pencarian akan ditampilkan lagi tapi aku bisa't bekerja keluar bagaimana untuk memicu pencarian untuk mengeksekusi. Berikut ini's detail:
- Saya Angular.js halaman ini adalah halaman pencarian, dengan bidang pencarian dan pencarian tombol. Pengguna dapat secara manual ketik query dan tekan tombol dan dan ajax query dipecat dan hasil yang ditampilkan. Saya memperbarui URL dengan istilah pencarian. Itu semua bekerja dengan baik.
- Pengguna mengklik pada hasil pencarian dan dibawa ke sebuah halaman yang berbeda - yang bekerja dengan baik juga.
- User klik tombol kembali, dan kembali ke sudut halaman pencarian, dan URL yang benar akan ditampilkan, termasuk istilah pencarian. Semua bekerja dengan baik.
- Aku telah terikat dalam kolom pencarian nilai untuk pencarian istilah URL, jadi ini berisi diharapkan istilah pencarian. Semua bekerja dengan baik.
Bagaimana cara mendapatkan fungsi pencarian untuk mengeksekusi lagi tanpa pengguna harus tekan "tombol pencarian"? Jika itu jquery maka saya akan menjalankan fungsi dalam documentready fungsi. Saya dapat't melihat Angular.js setara.
355
14
Di satu sisi sebagai @Mark-Rajcok mengatakan anda hanya bisa pergi dengan swasta dalam fungsi:
Anda juga dapat melihat di ng-init direktif. Implementasi ini akan banyak seperti:
Tapi berhati-hati tentang hal itu sebagai sudut dokumentasi menyiratkan (sejak v1.2) untuk TIDAK menggunakan
ng-init
untuk itu. Namun imo itu tergantung pada arsitektur dari aplikasi anda.Saya menggunakan
ng-init
ketika saya ingin lulus dengan nilai dari back-end ke sudut aplikasi:Coba ini?
Aku tidak pernah bisa mendapatkan
$viewContentLoaded
bekerja untuk saya, danng-init
harus benar-benar hanya dapat digunakan dalam sebuahng-repeat
(menurut dokumentasi), dan juga memanggil fungsi secara langsung di controller dapat menyebabkan kesalahan jika kode bergantung pada unsur yang belum't telah ditetapkan belum.Ini adalah apa yang saya lakukan dan itu bekerja untuk saya:
Kecuali anda're menggunakan
ui-router
. Maka itu's:Dimitri's/Mark's solusi didn't bekerja untuk saya, tapi menggunakan $timeout fungsi tampaknya bekerja dengan baik untuk memastikan kode anda hanya berjalan setelah markup yang diberikan.
Semoga membantu.
Anda dapat melakukan ini jika anda ingin menonton viewContentLoaded objek DOM untuk mengubah dan kemudian melakukan sesuatu. menggunakan $scope.$pada karya-karya juga, tapi berbeda terutama ketika anda memiliki satu halaman pada mode routing.
Anda dapat menggunakan sudut's $objek jendela:
Alternatif lain:
(via https://stackoverflow.com/a/30258904/148412)
Alternatif lain jika anda memiliki controller hanya spesifik untuk halaman tersebut:
Ketika menggunakan $routeProvider anda dapat menyelesaikan .negara dan bootstrap layanan anda. Ini adalah untuk mengatakan, anda akan load Controller dan View, hanya setelah menyelesaikan Layanan anda:
ui-rute
Layanan
Ditemukan Dmitry Evseev menjawab cukup berguna.
Kasus 1 : Menggunakan angularJs sendiri:
Untuk melaksanakan metode pada beban halaman, anda dapat menggunakan
ng-init
dalam melihat dan menyatakan init metode kontroler, yang mengatakan bahwa penggunaan berat fungsi ini tidak dianjurkan, sesuai sudut Docs di ng-init:HTML:
Controller:
Peringatan : tidak menggunakan controller ini untuk pandangan lain dimaksudkan untuk niat yang berbeda karena akan menyebabkan metode pencarian yang akan dieksekusi di sana juga.
Kasus 2 : Menggunakan Ionik:
kode di atas akan bekerja, pastikan view cache dinonaktifkan dalam
route.js
sebagai:route.js
Semoga ini bisa membantu
Aku punya masalah yang sama dan satu-satunya solusi ini bekerja untuk saya (itu menjalankan fungsi setelah menyelesaikan DOM telah dimuat). Saya menggunakan ini untuk gulir ke jangkar setelah halaman telah dimuat:
Anda dapat menyimpan hasil pencarian dalam layanan umum yang dapat digunakan dari mana saja dan doesn't jelas ketika menavigasi ke halaman lain, dan kemudian anda dapat menetapkan hasil pencarian dengan data yang disimpan untuk klik tombol kembali
Untuk anda backbutton
memanggil metode awal dalam diri menginisialisasi fungsi.