javascript - AngularJS - 在 ng-repeat 中过滤未定义的属性?

标签 javascript angularjs

对于我的 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}">

这与其说是一种需要,不如说是一种好奇心,但我很感激任何建议。

最佳答案

您可以否定过滤器表达式。因此,您可以过滤掉 isRight 不是 (!) true 的任何内容,而不是处理 undefined。像这样:

<li ng-repeat="link in nav | filter:{isRight:'!true'} ">

当然,你可以做相反的事情:

<li ng-repeat="link in nav | filter:{isRight:'true'} ">

demo fiddle

关于javascript - AngularJS - 在 ng-repeat 中过滤未定义的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21070119/

相关文章:

javascript - 在网格中使用 rowTemplate 时如何使剑道网格可编辑?

javascript - 检测当前是否在 Android 上滚动网页

javascript - Next.js 与 Styleguidist 和 Fela (React)

javascript - 如何使用angularjs仅选中ng-repeat复选框中的一个复选框?

angularjs - 如何从父范围检查包含 ng 的表单的有效性?

javascript - 在 AngularJS 场景中向 Froala 编辑器添加自定义下拉菜单

javascript - 单击菜单 <li> 并生成其他子菜单

angularjs - ng-show当数组长度为零时

javascript - JS - 创建并传递一个函数,该函数将在另一个作用域的上下文中进行评估

javascript - 单击事件不适用于动态添加的按钮