gpt4 book ai didi

angularjs - 如何有条件地在对象属性的 ng-repeat 上应用 Angular 过滤器?

转载 作者:行者123 更新时间:2023-12-01 23:30:56 24 4
gpt4 key购买 nike

我有一个具有 100 多个属性的对象,例如“名称”、“价格”、“有效期”...等我正在使用 ng-repeat 遍历对象的所有键对值并将它们显示在表格上。

<table class="table">
<tr ng-repeat="x in attr_array">
<td><b>{{x.key}}</b></td>
<td>{{x.value}}</td>
</tr>
</table>

但我想在某些属性上使用 Angular 日期过滤器,例如任何日期字段:

{{ x.value | date: 'MMM d, y'}}

最好还有其他过滤器。我该怎么做呢?

最佳答案

我尝试重现您的问题并使用 ng-if 解决了它。angular 命名空间中似乎有一个函数来检查我通过范围注入(inject)到 View 中的每种类型,如日期、字符串、数字。
另请注意,我使用了 ng-repeat="(key, value) in ..." 假设您正在迭代一个对象,source .

<!DOCTYPE html>
<html>

<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.0/angular.min.js"></script>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>JS Bin</title>
</head>

<body ng-app="app" ng-controller="RootController">
<table>
<tr ng-repeat="(key, value) in attr_array">
<td><b>{{key}}</b>
</td>
<td>
<span ng-if="isDate(value)">{{value | date: 'MMM d, y'}}</span>
<span ng-if="isNumber(value)">{{value | number: 4}}</span>
<span ng-if="isString(value)">{{value | uppercase}}</span>
</td>
</tr>
</table>
<script>
angular.module('app', [])
.controller('RootController', function($scope) {
$scope.isDate = angular.isDate;
$scope.isNumber = angular.isNumber;
$scope.isString = angular.isString;
$scope.attr_array = {
date: new Date(),
str: "hello",
nm: 50.2
};
});
</script>
</body>

</html>

关于angularjs - 如何有条件地在对象属性的 ng-repeat 上应用 Angular 过滤器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36133686/

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