我正在尝试这个:
<select ng-disabled="!items" class="form-control" ng-model="selected" ng-options="key as value for (key , value) in items">
<option ng-if="items" value="">All Items</option>
</select>
但是当有项目时,All Items
选项不会显示。
注意:问题归因于ng-if
,没有别的。
答案 0 :(得分:4)
您可以检查对象ID是否为空
$scope.isEmpty = function (obj) {
for (var i in obj) if (obj.hasOwnProperty(i)) return false;
return true;
};
在视图中你可以这样做:
<option ng-show="!isEmpty(items)">All Items</option>
ng-if在选项标签中不起作用 - 这是因为选择元素在DOM树上比使用ng-if的null选项更高,因此它将首先编译。 see the angular source
答案 1 :(得分:0)
这对我来说是个不错的选择:
angular
.module('myApp')
.filter('empty', function() {
return function(obj) {
return obj === null || angular.equals({}, obj)
}
})
<span ng-if="items|empty">0 items</span>
将该函数添加为过滤器并使用Angular进行测试。
感谢@Hmahwish的灵感。