Saya tahu ini mungkin pertanyaan sederhana, tapi saya frustrasi di sini, dan saya tidak bisa membuatnya berhasil. Saya baru mengenal AngularJS, dan saya mencoba menerapkan dialog modal (atau menemukannya) dengan ketentuan berikut:
- Konten dialog bisa datang dari mana saja—templat string, templat skrip, atau templat dari URL
- Judul dialog dan tindakan akan datang dari penelepon, bukan dari pihak yang dipanggil. Dengan kata lain, lingkup induk menentukan judul dan tombol tindakan mana yang harus ada dalam dialog modal (banyak dialog yang saya temukan merangkum tombol judul dan tindakan dalam templat itu sendiri, misalnya yang ini)
- Konten template harus benar-benar independen dari lingkup induk (pemanggil). Faktanya, itu mungkin tidak ditulis dalam AngularJS. Mungkin menggunakan jQuery.
Jika templat yang dimuat berada di AngularJS, templat tersebut harus merangkum pengontrolnya. Misalnya,
ng-include
tidak menyukai tag<script>
.Ada solusi untuk itu (di sini, di sini dan di sini) tapi ide mendekorasi tag skrip dengan
text/javascript-lazy
sangat bau dan kotor, biar sendirian saya ingin konten HTML menjadi mandiri dan dapat dieksekusi jika tidak dimuat sebagai konten dialog modal AngularJS.Komunikasi antara lingkup induk dan konten harus dilakukan melalui kontrak bersama (peristiwa JavaScript muncul di benak saya)
Saya sudah mencoba ngDialog
, tetapi masalahnya adalah penampung harus meneruskan controller
ke templat yang dimuat. Bukan itu yang saya inginkan. Dalam dialog Bootstrap juga tampaknya Anda harus meneruskan controller
dari lingkup induk ke isi dialognya. Ini mematahkan gagasan enkapsulasi. Itu tidak diinginkan. Selain itu, ini bergantung pada hasil dialog, yang juga tidak diinginkan.