我在角度项目中实现了一个智能表。目前,我有一些人在阵列中。
$scope.persons = [
{
"firstname":"Anders",
"lastname":"Andersson",
"city":"Stockholm",
"country":"Sweden"
},
{
"firstname":"John",
"lastname":"Smith",
"city":"Washington DC",
"country":"USA"
}
];
我绑定了我的桌子。
<table st-safe-src="persons" class="table">
<thead>
<tr>
<th><input st-search="firstname" class="form-control" type="search"/></th>
<th><input st-search="lastname" class="form-control" type="search"/></th>
<th><input st-search="city" class="form-control" type="search"/></th>
<th><input st-search="country" class="form-control" type="search"/></th>
</tr>
</thead>
<tbody>
<tr ng-repeat="person in persons">
<td>{{person.firstname}}</td>
<td>{{person.lastname}}</td>
<td>{{person.city}}</td>
<td>{{person.country}}</td>
</tr>
</tbody>
</table>
这非常顺利。在每个列的每个头中,我可以搜索指定的属性。但是,我想重做该表,并在同一列中有两个(或者可能更多,将来)属性。在我相当简单的例子中,我想将我的城市和国家/地区属性加入到一个列中,如下所示。
<table st-safe-src="persons" class="table">
<thead>
<tr>
<th><input st-search="firstname" class="form-control" type="search"/></th>
<th><input st-search="lastname" class="form-control" type="search"/></th>
<th><input st-search="???" class="form-control" type="search"/></th>
</tr>
</thead>
<tbody>
<tr ng-repeat="person in persons">
<td>{{person.firstname}}</td>
<td>{{person.lastname}}</td>
<td>{{person.city}}, {{person.country}}</td>
</tr>
</tbody>
</table>
在此更改中,我希望在第三列中搜索城市和国家/地区。我该怎么做才能实现这个功能?
答案 0 :(得分:3)
这是一个想法(我打赌你可以通过其他几种方式实现这种功能)。
在智能表中,您可以为要进行的任何操作定义数据的安全副本,而无需使用st-safe-src
属性修改数据。
在那个安全的收藏中,将城市和国家的字符串加入一个新的房产..
person.location: [person.city, person.country].join(', ');
或者只是在将表数据传递给smart-table
之前修改它然后按新位置过滤&#39;财产st-search="location"