Javascript ng repeat中的Angular Js对象过滤器
如何基于对象值(如1、2或3)进行过滤 我正在尝试过滤我的json,它看起来类似于names对象 这是我的代码,我试图应用过滤器,但它不工作Javascript ng repeat中的Angular Js对象过滤器,javascript,angularjs,json,Javascript,Angularjs,Json,如何基于对象值(如1、2或3)进行过滤 我正在尝试过滤我的json,它看起来类似于names对象 这是我的代码,我试图应用过滤器,但它不工作 <!DOCTYPE html> <html> <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script> <body> <div ng-app="myApp" ng-
<!DOCTYPE html>
<html>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<body>
<div ng-app="myApp" ng-controller="namesCtrl">
<ul>
<li ng-repeat="x in names ">
{{ x.name }}
</li>
</ul>
</div>
<script>
angular.module('myApp', []).controller('namesCtrl', function($scope) {
$scope.names = {
"1": {
"name": "some"
},
"2": {
"name": "values"
},
"3": {
"name": "are"
},
"4": {
"name": "there"
},
"5": {
"name": "here"
}
}
});
</script>
</body>
</html>
-
{{x.name}
角度.module('myApp',[]).controller('namesCtrl',function($scope){
$scope.names={
"1": {
“姓名”:“一些”
},
"2": {
“名称”:“值”
},
"3": {
“名称”:“是”
},
"4": {
“名称”:“有”
},
"5": {
“名称”:“此处”
}
}
});
我认为您无法筛选属性名称。我假设这些属性名是您要筛选的某种ID。然后,您的数据结构应该反映这一点,并如下所示:
$scope.names = [
{ id: "1", name: "some" },
{ id: "2", name: "values" },
{ id: "3", name: "are" },
{ id: "4", name: "there" },
{ id: "5", name: "here" }
]
<ul>
<li ng-repeat="x in names | filter: { id: searchId } >
{{ x.name }}
</li>
</ul>
然后您可以像这样进行过滤:
$scope.names = [
{ id: "1", name: "some" },
{ id: "2", name: "values" },
{ id: "3", name: "are" },
{ id: "4", name: "there" },
{ id: "5", name: "here" }
]
<ul>
<li ng-repeat="x in names | filter: { id: searchId } >
{{ x.name }}
</li>
</ul>
filter和orderBy不处理对象属性,仅处理数组。话虽如此,我想我找到了一个你会喜欢的解决方案:
<!DOCTYPE html>
<html>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<body>
<div ng-app="myApp" ng-controller="namesCtrl">
<input type="text" ng-model="searchText"/>
<ul ng-init="nameArray=objArray(names)">
<li ng-repeat="x in nameArray | filter:searchText">
{{x.value.name}}
</li>
</ul>
</div>
<script>
angular.module('myApp', []).controller('namesCtrl', function($scope) {
$scope.searchText='';
$scope.names = {
"1": {
"name": "some"
},
"2": {
"name": "values"
},
"3": {
"name": "are"
},
"4": {
"name": "there"
},
"5": {
"name": "here"
}
};
$scope.objArray=function (obj) {
var result=[];
for (var key in obj) {
result.push({
key: key,
value: obj[key]
});
}
return result;
}
});
</script>
</body>
</html>
-
{{x.value.name}
角度.module('myApp',[]).controller('namesCtrl',function($scope){
$scope.searchText='';
$scope.names={
"1": {
“姓名”:“一些”
},
"2": {
“名称”:“值”
},
"3": {
“名称”:“是”
},
"4": {
“名称”:“有”
},
"5": {
“名称”:“此处”
}
};
$scope.objArray=函数(obj){
var结果=[];
for(obj中的var键){
结果:推({
钥匙:钥匙,
值:obj[键]
});
}
返回结果;
}
});
您能用这些数据说明您的目标吗?您的数据结构$scope.names
可能不是您想要实现的目标。