angularjs,如果容器宽度小于ul元素
angularjs if container width less than ul element
我有动态面包屑数据。我正在DOM中用ng repeat:绑定
<ul>
<li class="list-item" ng-repeat="breadCrumb in breadCrumbs">
<a href="javascript:void(0);">{{ breadCrumb.name }}</a>
</li>
</ul>
我想计算每个重复ul的宽度,并与容器的宽度进行比较。如果容器宽度小于ul宽度,我想添加所有以前的li元素隐藏类。
例如:
[{name:'home'},{name:'movies'},{name:'Comedy'},{name:'The hangover'}]
假设我有这个数据,在第二个对象之后,容器中并没有空间。应用程序必须生成这样的html:
<ul>
<li class="list-item HIDE" ng-repeat="breadCrumb in breadCrumbs">
<a href="javascript:void(0);">home</a>
</li>
<li class="list-item HIDE" ng-repeat="breadCrumb in breadCrumbs">
<a href="javascript:void(0);">movies</a>
</li>
<li class="list-item" ng-repeat="breadCrumb in breadCrumbs">
<a href="javascript:void(0);">Comedy</a>
</li>
<li class="list-item" ng-repeat="breadCrumb in breadCrumbs">
<a href="javascript:void(0);">The hangover</a>
</li>
</ul>
我做了一个没有棱角的,但我想试试有棱角的。这怎么可能是有角度的?
一种方法是创建一个自定义过滤器,根据所需宽度减少面包屑列表。
<span
ng-repeat="breadCrumb in breadCrumbs | crumbFilter: iWidth ">
→
<a href="javascript:void(0);">{{ breadCrumb.name }}</a>
</span>
自定义过滤器
angular.module('myApp').filter('crumbFilter', function() {
return function(list,width) {
var testString = "";
var filteredList = [];
var i = list.length-1;
while (i>=0 && testString.length<width) {
testString += " "+list[i].name;
filteredList.unshift(list[i]);
i--;
}
return filteredList;
}
});
JSFiddle
相关文章:
- 在单独的ul's
- 将所选类别循环到ul>李用加载更多按钮
- 使用jquery动态创建ul-li
- 使用下拉列表筛选列表(ul>li)
- 如何附加<ul><李>元素位于某个特定条件的父元素列表之间
- :not选择器不适用于ul类-备选方案
- 在验证器中添加自定义规则以检查<ul>具有元素
- 在JQuery中隐藏和显示ul中的特定元素
- 使用 jquery 获取外部父 UL
- 隐藏/显示包含单词的ul li项目.但只能入住李的子女
- 如何在点击时显示ul项目
- 如果用户输入的长度小于最小长度,则显示错误消息
- 限制ul元素中显示的项目
- ul-li专属功能
- Jquery setdate设置的日期小于实际选定日期的一
- 将OnClick函数设置为<ul>,最后一个ul是擦除第一个ul-s
- 如何在ajax中检查密码是否小于8个字符
- 我应该如何在 UL 内触发 IMG 标签的点击
- 排序<李><Ul>根据<span>内部<李>
- angularjs,如果容器宽度小于ul元素