我有以下设置
$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>
所以问题是:
此设置不显示任何内容
如果我更改为|filter :{propertyB: '!!'} :true
不显示任何内容
如果我更改为|filter :{propertyB: undefined} :true
显示所有内容
我不知道。
目标:我想显示propertyB
未定义的项目,反之则显示其他情况。
编辑1:如果我重复的进行阵列angular.equals(item.propertyB, undefined)
我得到false, true, true
编辑2:jsfiddle更新
编辑3:我已经更新了问题
我最终这样做了。
.filter('undefinedProperties', ['$filter', function ($filter) {
var checkProperty = function (property, returnUndefined) {
if (returnUndefined) {
if (property !== undefined) {
return true;
} else {
return false;
}
} else {
if (property === undefined) {
return true;
} else {
return false;
}
}
};
return function (input, propertyArray, returnUndefined) {
if (angular.isArray(propertyArray)) {
if (angular.isArray(input) && input.length > 0) {
angular.forEach(propertyArray, function (property) {
for (var i = input.length; i-- > 0;) {
if (checkProperty(input[i][property], returnUndefined)) {
input.splice(i, 1);
}
}
});
}
return input;
} else {
throw "PropertyArray is not an array";
}
};
}])
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句