Saya mencoba untuk menampilkan / menyembunyikan beberapa HTML menggunakan ng-show
dan ng-hide
fungsi - fungsi yang disediakan oleh AngularJS .
Menurut dokumentasi, penggunaan masing-masing untuk fungsi-fungsi ini adalah sebagai berikut:
ngHide - {ekspresi} - Jika ekspresi benar maka elemen ditampilkan atau disembunyikan masing-masing. ngShow - {ekspresi} - Jika ekspresi benar maka elemen ditampilkan atau disembunyikan masing-masing.
Ini berfungsi untuk usecase berikut:
<p ng-hide="true">I'm hidden</p>
<p ng-show="true">I'm shown</p>
Namun, jika kita menggunakan parameter dari objek sebagai ekspresi maka ng-hide
dan ng-show
diberikan nilai true
/ benar false
tetapi nilai tidak diperlakukan sebagai boolean jadi selalu kembali false
:
Sumber
<p ng-hide="{{foo.bar}}">I could be shown, or I could be hidden</p>
<p ng-show="{{foo.bar}}">I could be shown, or I could be hidden</p>
Hasil
<p ng-hide="true">I should be hidden but I'm actually shown</p>
<p ng-show="true">I should be shown but I'm actually hidden</p>
Ini bug atau saya tidak melakukan ini dengan benar.
Saya tidak dapat menemukan informasi relatif tentang referensi parameter objek sebagai ekspresi jadi saya berharap siapa pun yang memiliki pemahaman yang lebih baik tentang AngularJS mungkin dapat membantu saya?
<p ng-show="foo.bar === 'test'">I could be shown, or I could be hidden</p>
Anda tidak dapat menggunakan
{{}}
ketika menggunakan arahan sudut untuk mengikat denganng-model
tetapi untuk mengikat atribut non-sudut Anda harus menggunakan{{}}
..Misalnya:
sumber
Coba balas ekspresi dengan:
sumber
foo.bar = true
harusscope.foo.bar = true
, untuk mengubah nilaifoo.bar
$scope.$apply
Karena
ng-show
merupakan atribut sudut yang saya pikir, kita tidak perlu menempatkan kurung evaluasi bunga ({{}}
) ..Untuk atribut seperti
class
kita perlu merangkum variabel dengan tanda kurung bunga evaluasi ({{}}
).sumber
sumber
hapus {{}} tanda kurung di sekitar foo.bar karena ekspresi sudut tidak dapat digunakan dalam arahan sudut.
Untuk Lebih Lanjut: https://docs.angularjs.org/api/ng/directive/ngShow
contoh
sumber
Jika Anda ingin menampilkan / menyembunyikan elemen berdasarkan status {{ekspresi}} Anda dapat menggunakan
ng-switch
:Paragraf akan ditampilkan ketika foo.bar benar, disembunyikan saat salah.
sumber