angular.js - Masalah dengan ng-if dan ng-show di bawah IE8
天蓬老师
天蓬老师 2017-05-15 16:50:55
0
2
660

Saya sedang mengusahakan projek js sudut. Saya telah bimbang tentang pepijat sepanjang pagi ini,
Iaitu, kotak timbul muncul dalam ng-jika Arahan kotak timbul merujuk kepada templat Tiada masalah dalam pelayar lain, tetapi skrip tidak dilaksanakan di bawah IE8.
Saya menyemak banyak masalah dengan pelaksanaan skrip dalam IE8, termasuk menambah atribut tangguh pada teg skrip, tetapi ia tidak menyelesaikan masalah sebenar.
Kemudian saya mendapati bahawa bukan skrip tidak boleh dilaksanakan, tetapi skrip itu dilaksanakan apabila halaman utama dimuatkan (ng-if adalah palsu dan kotak pop timbul tidak muncul).
Dikatakan di Internet bahawa ng-if akan mengalih keluar dom dan menjana dom, manakala ng-show hanya menukar atribut paparannya,
Adalah wajar bahawa dom tidak boleh dimuatkan dan skrip dilaksanakan sehingga ng-if="true" ditetapkan?
Tetapi selepas menukar ng-if kepada ng-show, saya mendapati bahawa masalah itu telah diselesaikan secara tiba-tiba Dalam IE8, skrip telah dilaksanakan selepas mengklik kotak pop timbul dengan sempurna Saya tidak faham mengapa ini berlaku, boleh sesiapa beritahu saya?

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

membalas semua(2)
PHPzhong

Saya tidak faham cara menyelesaikan pepijat Bagi proses penghuraian sudut, saya boleh menerangkan:

Walaupun apa yang kita lihat dalam pemapar DOM ialah hasil selepas penghuraian sudut, penyemak imbas sebenarnya memuatkan elemen dom dahulu, dan kemudian sudut melaksanakannya untuk mencari pelbagai arahan dan kemudian menghuraikan hasilnya.

Jadi sudut mempunyai beberapa keanehan: ng-bind menggantikan {{ ungkapan }} untuk menyelesaikan masalah kelipan pendakap kerinting, anda tidak boleh menentukan arahan href untuk digunakan pada teg dan sebab lain yang serupa adalah sama.

ng bukan templat latar belakang Untuk bahasa latar belakang, templat ialah penghuraian dan penyambungan rentetan, tetapi ng dijalankan dalam penyemak imbas terlebih dahulu akan menjadi elemen dom, tetapi ia memanipulasi dom elemen.

世界只因有你

Anda sepatutnya mempunyai model pengawal terikat dalam ng-if dan ng-show, bukan?

Melihat proses penyelesaian anda, saya rasa:
ng-jika lalai kepada benar
Nilai lalai ng-show adalah palsu

Jadi apabila menggunakan ng-if, skrip dalam templat akan dilaksanakan sebelum model dikira
Tetapi ini mungkin juga situasi istimewa pada ie8

Saya ada cadangan, jangan letak skrip terus dalam templat, contohnya, letak dalam pengawal templat Anda juga boleh menggunakan ng-jika dengan cara ini

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan