你好聪明且充满爱心的社区。 p>
我想知道当通过重复数组中的对象键来调用该对象时,是否存在一种过滤对象属性的Angular方法。
这是一个人为的例子,但很重要,因为我的应用程序正在运行firebase,我使用索引来收集特定用户的对象ID。
示例:
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="stackOverflowExample" ng-controller="ExampleCtrl">
<label>
<span>Search</span>
<input type="text" ng-model="search">
</label>
<hr>
<div ng-repeat="objectKey in myObjectKeysArray | filter:search" placeholder="search">
<p>name: {{ myObject[objectKey].name }}</p>
<p>age: {{ myObject[objectKey].age }}</p>
</div>
</div>
https://help.ubuntu.com/community/CronHowto
任何人都可以推荐一种甜蜜的方式来做这个或者我应该在调用repeat之前制作一个数组吗?
答案 0 :(得分:0)
好吧,如果我理解你的问题,你想要过滤“子阵列”,所以我合并了数组,将该键作为其数组的属性。
这是一个代码片段:
var app = angular.module('app', []);
app.controller('mainCtrl', function($scope) {
$scope.myObjectKeysArray = [
'sdav', 'arfg', 'wefc'
];
$scope.myObject = {
"sdav":{
"name":"mark",
"age":23
},
"arfg":{
"name":"lucy",
"age":18
},
"wefc":{
"name":"kat",
"age":19
}
};
$scope.array = [];
angular.forEach($scope.myObjectKeysArray, function(value, key) {
$scope.array[key] = {};
$scope.array[key].key = value;
$scope.array[key].values = [];
$scope.array[key].values.push($scope.myObject[value]);
});
});
<!DOCTYPE html>
<html ng-app="app">
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.7/angular.min.js"></script>
</head>
<body ng-controller="mainCtrl">
<label>
<span>Search</span>
<input type="text" ng-model="search">
</label>
<hr>
<ul>
<li ng-bind="arr.key" ng-repeat-start="arr in array" placeholder="search"></li>
<ul ng-repeat-end ng-repeat="obj in arr.values | filter: { name: search }">
<li ng-bind="'Name => ' + obj.name"></li>
<li ng-bind="'Age => ' + obj.age"></li>
</ul>
</ul>
</body>
</html>