【发布时间】:2014-01-30 22:46:55
【问题描述】:
对于我的 AngularJS 项目 (v1.2.3),我有一个路线列表,并且正在尝试从该对象构建一个导航栏。我想要做的是以一种样式显示具有未定义 isRight 属性的任何对象,并且该属性在另一种样式中定义。
在一个ng-repeat 中,我想用未定义的isRight 属性过滤那些对象。如何在 ng-repeat 属性中完成此操作,而不必求助于创建自定义过滤器函数?
$scope.nav = [
{ path: '/', title: 'Home' },
{ path: '/blog', title: 'Blog' },
{ path: '/about', title: 'About' },
{ path: '/login', title: 'Login', isRight: true }
];
我意识到我可以将属性 isRight: false 添加到每个对象,或者为右侧和左侧链接设置单独的导航对象,以及其他简单的解决方法,但我很好奇是否有办法通过当前结构,使用类似于以下内容的内容:
<li ng-repeat="link in nav | filter:{isRight:undefined}">
这与其说是一种需要,不如说是一种好奇心,但我很感激任何建议。
【问题讨论】:
-
遇到了同样的问题。我使用
prop: undefined过滤属性没有值的情况,使用prop: {}过滤属性是对象的情况。问题是,当财产丢失时,这些都不包括在内。感谢您提出这个问题,它帮助我找到了!和!!的魔力!
标签: javascript angularjs