gpt4 book ai didi

javascript - Angular 的 orderBy 过滤器和一个只有方法的对象数组

转载 作者:行者123 更新时间:2023-11-29 21:54:30 25 4
gpt4 key购买 nike

我有一个对象数组。这些对象唯一公开的接口(interface)是它们的方法。

obj = { 
getId : function() { ... },
getName : function() { ... },
getAvgHours : function() { ... }
}

事实上,有些字段包含实际值。但这些是生成的代码,所以这些字段被隐蔽地命名,被埋在另一层字段下。只能通过提供的函数访问它们的值。

我正在寻找类似下面的东西,但它不起作用:

<tr ng-repeat="p in people | orderBy:p.getAvgHours()">

我可以添加一个命名的 function getAvgHours(p) { return p.getAvgHours(); } 到作用域,这有效。但这似乎是多余的,我需要添加一打这样的功能。

有没有更好的方法?

最佳答案

您可以简单地使用谓词并将您希望调用的方法作为字符串传递。

标记:

orderBy:fnValue('getId')

谓词函数:

$scope.fnValue = function (fn) {
return function (obj) {
return obj[fn]();
};
};

在从谓词返回的函数中,您可以访问正在排序的对象,因此您可以调用那里的方法并获取值。

DEMO

关于javascript - Angular 的 orderBy 过滤器和一个只有方法的对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27161198/

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