Mam prosty obiekt w kontrolerze, który czasami może być pusty ({}
).Sprawdź, czy obiekt jest pustym obiektem w szablonie AngularJS
app.controller('TestController', function() {
var vm = this;
vm.testObject = {};
});
Chcę ukryć lub pokazać niektóre elementy DOM w odpowiednim szablonie, gdy obiekt jest pusty lub nie.
Próbowałem zrobić to z prostym <div ng-if="vm.testObject">
, ale gdy vm.testObject === {}
jest uważany za true
w ng-if
.
<div ng-controller="TestController as vm">
<div ng-if="vm.testObject">
Test Object is not empty
</div>
<div ng-if="!vm.testObject">
Test Object is empty
</div>
</div>
Czy istnieje prosty sposób sprawdzenia pustego obiektu w szablonie? Najlepiej bez dodawania nowych zmiennych do zakresu.
Oto Plunker pracy: http://plnkr.co/edit/Qed2MKmuedcktGGqUNi0?p=preview
Co powiesz na funkcję, np. 'vm.isEmpty = function (obj) {return Object.keys (obj) .length === 0; } '. Następnie możesz użyć 'ng-if =" vm.isEmpty (vm.testObject) "' – Phil