Tester si un objet est un objet vide dans un modèle AngularJS

J'ai un simple objet dans un contrôleur, qui peut parfois être vide ({}).

app.controller('TestController', function() {
  var vm = this;

  vm.testObject = {};
});

Je veux masquer ou afficher certains DOM-éléments dans le modèle correspondant lorsque l'objet est vide ou pas.

J'ai essayé de le faire avec un simple <div ng-if="vm.testObject"> mais quand vm.testObject === {} il est considéré comme true dans le 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>

Est-il une manière simple de vérifier pour un objet vide dans le modèle? De préférence sans ajouter de nouvelles variables à la portée.

Ici est un travail Plunker:
http://plnkr.co/edit/Qed2MKmuedcktGGqUNi0?p=preview

  • Comment sur une fonction, par exemple,vm.isEmpty = function(obj) { return Object.keys(obj).length === 0; }. Ensuite, vous pouvez utiliser ng-if="vm.isEmpty(vm.testObject)"
InformationsquelleAutor DanEEStar | 2015-05-21