gpt4 book ai didi

javascript - 未定义属性时 Angularjs 过滤器不起作用

转载 作者:搜寻专家 更新时间:2023-11-01 04:30:26 26 4
gpt4 key购买 nike

我有以下设置

  $scope.array = 
[
{propertyA: "test",
propertyB: {
propertyC: [true, true, false]
}
},
{propertyA: "test2"},
{propertyA: "test3"}
]

然后

<div ng-repeat="item in array| filter :{propertyB: ''} :true">
{{item.propertyA}}
</div>

所以问题是:

  1. 此设置不显示任何内容

  2. 如果我更改为 |filter :{propertyB: '!!'} :true 它不会显示任何内容

  3. 如果我更改为 |filter :{propertyB: undefined} :true 它会显示所有内容

我想不出来

目标:我想显示未定义 propertyB 的项目,在其他情况下则相反。

编辑 1:如果我使用 angular.equals(item.propertyB, undefined) 遍历数组,我得到 false, true, true

编辑 2:jsfiddle UPDATED

编辑 3:我已经更新了问题

最佳答案

$scope.array = 
[
{propertyA: "test", propertyB: "test2"},
{propertyA: "test2"},
{propertyA: "test3"}
];
$scope.filteredArray =[];
angular.forEach($scope.array,function(eachData){
if(angular.isUndefined(eachData.propertyB))
$scope.filteredArray.push(eachData);
});

$scope.filteredArray 是您想要的数组,您可以重复使用它在 html 中进行绑定(bind)。

关于javascript - 未定义属性时 Angularjs 过滤器不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34352488/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com