如何使用向上/向下箭头最初制作AngularJS智能表头以提升用户

时间:2015-11-25 23:53:50

标签: angularjs smart-table tableheader sortable-tables

我曾经在JQuery中编程,现在切换到AngularJS。 在JQuery中,这是一个很好地排序表的数据库插件。 在AngularJS中,我发现smart-table非常相似,也满足了我的大多数需求。 但是,我还有一个请求,即最初使用这些向上/向下箭头来提升用户这些列是可排序的。

我知道如何对列进行排序时如何使用箭头,但我不知道如何在排序之前同时使用向上/向下箭头,在列排序时更改向上或向下箭头。

 <thead>
        <tr class="sortable">
            <th >Toggle Expand/Collapse</th>
            <th st-sort="projectName" st-sort-default="default" st-skip-natural="true">Project Name</th>
            <th st-sort="val" st-skip-natural="true">Project Value</th>
            <th st-sort="cost">Cost of Project</th>
            <th st-sort="cost_benefit_ratio">Cost Benefit Ratio</th>
            <th st-sort="creatorName">Creator</th>
            <th st-sort="create_at">Create Time</th>
            <th st-sort="LastEditorName">Last Editor</th>
            <th st-sort="edit_at">Edit Time</th>
            <th> Edit </th>
        </tr>
        <tr>
            <th colspan="10"><input st-search="" class="form-control" placeholder="global search ..." type="text"/></th>
        </tr>
    </thead>

请参阅附图。

第一个是我想要实现的目标。第二个是我目前的情况。 enter image description here

enter image description here

4 个答案:

答案 0 :(得分:4)

我遇到了类似的问题,除了我希望排序切换箭头位于标题的右侧。

我覆盖了.st-sort-ascent:在CSS规则之前智能表适用于我自己的空表,并应用了:after rule。

并非所有列都可以排序,所以我只应用&#34; sort-header&#34;分类到那些。

我使用了FontAwesome图标而不是图像。

.sort-header {
    cursor: pointer;
}
.sort-header:after {
    font-family: FontAwesome;
    content: '  \f0dc';
    color: lightgrey;
}
.st-sort-ascent:before {
    content: '';
}
.st-sort-ascent:after {
    font-family: FontAwesome;
    content: '  \f0de';
    color: black;
}
.st-sort-descent:before {
    content: '';
}
.st-sort-descent:after{
    font-family: FontAwesome;
    content: '  \f0dd';
    color: black;
}

答案 1 :(得分:1)

我想我解决了我的问题。

在CSS中:

table thead tr.sortable th{
    background-image:url("./images/up-down-arrow.png");
    background-repeat: no-repeat;
    background-position: center right;
}

.sortable {
    cursor: pointer;
}

.st-sort-ascent{
    background-image:url("./images/up-arrow.png") !important;

}

.st-sort-descent{
    background-image:url("./images/down-arrow.png") !important;
}

确保添加“!important”,因此背景图片将被覆盖。

答案 2 :(得分:0)

通常你会用过滤器做到这一点。您可以在ng-repeat中添加一个过滤器,该过滤器几乎可以自动对结果进行排序和过滤。

orderBy在这里描述

angular orderBy

答案 3 :(得分:0)

你在这里

&#13;
&#13;
.st-table thead tr th {
  cursor: pointer;
  padding-right: 18px;
  position: relative;
}
.st-table thead tr th:before,
.st-table thead tr th:after{
  content: "";
  border-width: 0 4px 4px;
  border-style: solid;
  border-color: #000 transparent;
  visibility: visible;
  right: 5px;
  top: 50%;
  position: absolute;
  opacity: .3;
  margin-top: -4px;
}
.st-table thead tr th:before{
  margin-top: 2px;
  border-bottom: 0;
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  border-top: 4px solid #000;
}
.st-table thead tr th.st-sort-ascent:before{
  visibility: hidden;
}
.st-table thead tr th.st-sort-ascent:after{
  visibility: visible;
  filter: alpha(opacity=60);
  -khtml-opacity: .6;
  -moz-opacity: .6;
  opacity: .6;
}
.st-table thead tr th.st-sort-descent:before{
  visibility: visible;
  filter: alpha(opacity=60);
  -khtml-opacity: .6;
  -moz-opacity: .6;
  opacity: .6;
}
.st-table thead tr th.st-sort-descent:after{
  visibility: hidden;
}
&#13;
&#13;
&#13;