Saya memiliki objek JS yang dinyatakan seperti itu
$scope.items = {};
Saya juga memiliki permintaan $ http yang mengisi objek ini dengan item. Saya ingin mendeteksi apakah item ini kosong, tampaknya ng-show mendukung ini ... Saya masuk
ng-show="items"
dan secara ajaib berhasil, saya juga ingin melakukan hal yang sama dari pengontrol tetapi saya tidak dapat membuatnya berfungsi, tampaknya saya mungkin harus mengulangi objek untuk melihat apakah ia memiliki properti atau menggunakan lodash atau garis bawah .
Apakah ada alternatif lain?
Saya sudah mencoba
alert($scope.items == true);
tapi selalu mengembalikan false, saat objek dibuat dan saat diisi $http
, jadi tidak berfungsi seperti itu.
angularjs
angularjs-scope
Martin
sumber
sumber
Jawaban:
Gunakan literal objek kosong tidak diperlukan di sini, Anda dapat menggunakan null atau undefined:
Dengan cara ini,
ng-show
harus tetap berfungsi, dan di pengontrol Anda, Anda dapat melakukan:Dan dalam
$http
callback Anda, Anda melakukan hal berikut:sumber
$scope.items = {available: false}
, danng-show="items.available"
, dan di pengontrol Anda cukup periksaif (items.available) {...}
.Atau Anda bisa membuatnya sederhana dengan melakukan sesuatu seperti ini:
sumber
({} === $scope.items)
Dalam proyek pribadi, seorang menulis filter ini
pemakaian:
pengujian:
salam.
sumber
satu baris sederhana lainnya:
sumber
Jika Anda tidak dapat memiliki item OBJ yang sama dengan null, Anda dapat melakukan ini:
dan dalam tampilan Anda dapat melakukan:
Anda dapat melakukan
Hanya jika browser Anda mendukung ECMAScript 5. Misalnya, IE 8 tidak mendukung fitur ini.
Lihat http://kangax.github.io/compat-table/es5/ untuk info selengkapnya
sumber
versi yang lebih bersih dari ini mungkin:
dimana hasilnya tidak akan terdefinisi jika tidak ada properti objek yang disetel.
sumber
Atau, jika menggunakan lo-dash: _.empty (value).
"Memeriksa apakah nilai kosong. Array, string, atau argumen objek dengan panjang 0 dan objek tanpa properti enumerable sendiri dianggap" kosong "."
sumber
Periksa objek kosong
sumber
Anda dapat memeriksa panjang barang
sumber
items
merupakan objek dan objek tidak memiliki.length
properti (biasanya) - array memilikinya