我想使用ng-hide指令隐藏每个没有内容的标签(简单文本)。
这就是我想要完成的事情:
<div class="menu-head" ng-hide="c1.section == ''">{{c1.section}}</div>
但这不起作用。但是,以下两个评估为true(为了测试目的,我将c1.section字段设置为'Section 1'的值)并且相应的div变为隐藏:
<div class="menu-head" ng-hide="c1.section == c1.section">{{c1.section}}</div>
<div class="menu-head" ng-hide="c1.section == 'Section 1'">{{c1.section}}</div>
c1.section可通过
<div ng-repeat="c1 in col1">
来自这个控制器的:
function MenuCtrl($scope) {
"use strict";
$scope.col1 = MenuData.col1;
$scope.col2 = MenuData.col2;
$scope.col3 = MenuData.col3;
}
对象col1可能包含或可能不包含字段“section”。很明显,每当对象中缺少一个字段(任何字段)时,我希望它的div缺失/不显示在DOM中。这是MenuData对象:
var MenuData = {
col1: [
{section: 'Section 1'}, // <-here the fields id, name, price and descr are missing so their divs must not show up in the DOM.
{
id: '1',
// section: 'Section 2', <- here the field section is missing (commented-out).
name: 'Position 1',
price: '2.50',
descr: 'some description'
},
{section: 'Section 3'},
{
id: '2',
section: 'Section 4',
name: 'Position 2',
price: '4.75',
descr: ''
}
]
};
当'c1.section'数据绑定中没有内容时,如何使ng-hide的表达式评估为'true'?
答案 0 :(得分:7)
您应该可以使用以下代码:
<div ng-hide="!c1.section">
当div
等于c1.section
或''
对象没有c1
属性时,这会隐藏section
。
为了方便起见,我在http://plnkr.co/edit/aOe7Vc8lmYf43ODkCymx?p=preview
创建了一个有效的Plnkr希望有所帮助!