我试图显示一个对象的两个属性。为此,我使用另一个属性从数组中过滤。我在这里找到了一个解决方案,但它只适用于单个属性。
以下是示例代码
controller.js
$scope.people= [{name, last_name, code}, {name, last_name, code}];
view
<tr ng-repeat="item in transactions | filter:search">
<td>{{(people| filter : {code:item.person_code}:true)[0].name}}</td>
</tr>
我希望不仅能够显示名称,还能够显示last_name。如果可能,请用逗号分隔。
现在它有效,但我只显示名称,而且我不知道如何显示多个属性。
这是否可能?
答案 0 :(得分:1)
您应该将filter
的结果存储到temp
变量中,然后使用它来显示所需的属性:
<tr ng-repeat="item in transactions | filter : search">
<td ng-init='temp = (people | filter : {code:item.person_code}:true)[0]'>
{{temp.name}} {{temp.last_name}}
</td>
</tr>
答案 1 :(得分:0)
请试一试。
数据:
protected function failedValidation(Validator $validator)
{
$errors = $validator->errors();
$response = new ResponseObject();
$response->code = ResponseObject::BAD_REQUEST;
$response->status = ResponseObject::FAILED;
foreach ($errors as $item) {
array_push($response->messages, $item);
}
throw new HttpResponseException(response()->json($response));
}
过滤器:
$scope.people= [{name:"SUN", last_name:"SS", code:"101"},
{name:"MOON", last_name:"MM", code:"103"},{name:"ION",
last_name:"IO", code:"105"}];
$scope.transactions= [{person_code:"105"}, {person_code:"103"}];
HTML:
filter('pFilter',function(){
return function(input,trans) {
var result =[];
angular.forEach(trans,function(item){
angular.forEach(input,function(p){
if(p.code == item.person_code)
result.push(p);
});
});
return result;
}
})
希望如果数据很大并且您希望在表格中显示更多内容,则此功能可用。