gpt4 book ai didi

javascript - Angular 访问 ng-repeat 指令中全部对象的最佳方式是什么

转载 作者:行者123 更新时间:2023-11-27 23:15:42 26 4
gpt4 key购买 nike

访问 ng-repeat 中项目的长度似乎很简单。 {{array.length}}

但是当你必须迭代对象并且你必须知道总数时对象,那么你就没有 Angular 的东西。

我现在所做的是计算总属性并将其存储在变量中。

$scope.totalPersons =  Object.keys($scope.data).length;

但是,当将项目添加到对象时,totalPersons 不会更新,因此我对此进行了更改,因此该值将被更新。

$scope.$watch( $scope.data, function (newValue, oldValue) {
$scope.totalPersons = Object.keys($scope.data).length;
});

但是有没有更好的方法来访问模板中的全部对象?

<ul>
<li ng-repeat="(key, value) in data">
{{key}} - {{value}} {{totalPersons}}
</li>
</ul>

最佳答案

通过创建返回Object.keys的自定义过滤器,您可以获得对象键的长度

angular.module('customfilter', []).filter('keys', function() {
return function(obj) {
return Object.keys(obj);
};
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<div ng-app='customfilter' ng-init="data={a:1,b:2}">
<p>the array: {{ data | keys}}</p>
<p>the array length: {{ (data | keys).length}}</p>
</div>

关于javascript - Angular 访问 ng-repeat 指令中全部对象的最佳方式是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35845550/

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