我将数据存储在一个对象数组中,并使用来在页面上创建列表ngRepeat
。问题在于该对象内的某些值为null,我只想隐藏其行而不隐藏整个对象。我尝试ngHide
对个人使用,<li>
但它不会折叠该行,因为它只是将其隐藏,而且我真的不想通过函数或其他CSS将其高度减小到零,如果我可以使用过滤器自动完成的话。
尽管我已尽力而为,但我似乎无法编写一个自定义过滤器来隐藏空行并显示其他行。我曾经把它返回到返回false
null值的地步,但后来我删除了它以尝试其他操作,却忘记了我是怎么到达那里的(没有本地版本控制)。
这是我之前提出的一个问题,但我尝试过滤的所有内容都在其中。http://jsfiddle.net/E2GB9/9/
数据格式:
function TypeCtrl($scope) {
$scope.styles = [
{name: 'Example 1', h1:'32px', h2:'24px', p:'12px', className:'example1'},
{name: 'Example 2', h1:'', h2:'24px', p:'12px', className:'example2'},
{name: 'Example 3', h1:'24px', h2:'', p:'12px', className:'example3'},
{name: 'Example 4', h1:'32px', h2:'24px', p:'', className:'example4'}];
}
ngRepeat
在html中:
<li ng-repeat="style in styles">
<span>Name: {{style.name}}</span><br>
<span>H1: {{style.h1}}</span><br>
<span>H2: {{style.h2}}</span><br>
<span>P: {{style.p}}</span><br>
<button class="btn-small" type="submit" ng-click="$parent.appliedStyle=style.className">Apply {{style.name}}</button>
</li>
因此,如果那样的style.h1 == null
话,我只想隐藏该行;对于h2,p等相同。
ng-hide
不折叠行的原因是<br>
每个<span>
元素之后的。如果您改为写,它将起作用:
<p ng-hide="!style.h1">H1: {{style.h1}}</p>
(也没有<br>
)
也可以用a<div>
代替<p>
(或任何块元素,或设置<span>
as样式display:block
以强制换行)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句