cari

Rumah  >  Soal Jawab  >  teks badan

angular.js - Masalah dengan ng-if dan ng-show di bawah IE8

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?

天蓬老师天蓬老师2853 hari yang lalu682

membalas semua(2)saya akan balas

  • PHPz

    PHPz2017-05-15 16:52:55

    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.

    balas
    0
  • 世界只因有你

    世界只因有你2017-05-15 16:52:55

    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

    balas
    0
  • Batalbalas