【发布时间】:2015-05-21 07:13:51
【问题描述】:
我在控制器中有一个简单的对象,有时可能为空 ({})。
app.controller('TestController', function() {
var vm = this;
vm.testObject = {};
});
当对象是否为空时,我想在相应模板中隐藏或显示一些DOM元素。
我试图用一个简单的<div ng-if="vm.testObject"> 来做,但是当vm.testObject === {} 它在ng-if 中被认为是true。
<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>
有没有一种简单的方法来检查模板中的空对象?最好不要在范围内添加新变量。
这是一个正常工作的 Plunker: http://plnkr.co/edit/Qed2MKmuedcktGGqUNi0?p=preview
【问题讨论】:
-
函数怎么样,例如
vm.isEmpty = function(obj) { return Object.keys(obj).length === 0; }。然后你可以使用ng-if="vm.isEmpty(vm.testObject)"
标签: angularjs angularjs-templates