智能表:按列

时间:2015-11-04 07:57:05

标签: javascript angularjs angular-filters smart-table

我在角度项目中实现了一个智能表。目前,我有一些人在阵列中。

$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>

在此更改中,我希望在第三列中搜索城市和国家/地区。我该怎么做才能实现这个功能?

1 个答案:

答案 0 :(得分:3)

这是一个想法(我打赌你可以通过其他几种方式实现这种功能)。

在智能表中,您可以为要进行的任何操作定义数据的安全副本,而无需使用st-safe-src属性修改数据。 在那个安全的收藏中,将城市和国家的字符串加入一个新的房产..

person.location: [person.city, person.country].join(', ');

或者只是在将表数据传递给smart-table

之前修改它

然后按新位置过滤&#39;财产st-search="location"