如何在smart-table中获取当前排序列

时间:2015-11-20 21:23:16

标签: angularjs sorting smart-table

我的智能表中的所有列都有st-sort指令。当用户单击某列时,如何获取当前排序列?是否有一些技巧或我是否必须听取这些列标题上的click事件?

2 个答案:

答案 0 :(得分:4)

您可以使用指令st-pipe,将调用此函数进行排序,分页或过滤事件。

lstSearch.Items.AddRange(myRequest.SearchRequest(txtSearch.Text));

答案 1 :(得分:2)

我认为能够为您提供最佳控制的技术将是创建一个插件,该插件将监视表状态的变化,并在检测到更改时调用提供的回调(在您的情况下,您将特别注意表状态的“排序”命名空间

module.directive('stSentinel',function (){
   return{
      require:'^stTable',
      scope:{
        onChange:'&stSentinel'
      },
      link:function(scope, element, attr, stTable){
        scope.$watch(function(){
          return stTable.tableState();
        },function (newVal){
          scope.onChange(newVal);
        },
        true)}
     }
   };
});

您可以在标记中使用

<table st-table="foo" st-sentinel="myCtrl.applyChange(tableState)"> ... </table>

您的控制器将定义applyChange方法以对更改做出反应