如何获取 smart-table 中的当前排序列
How to get current sorted column in smart-table
我的 smart-table 中的所有列都有 st-sort 指令。当用户单击特定列时,如何获取当前排序列?有什么技巧还是我必须听那些列上的点击事件 headers?
您可以使用指令 st-pipe,此函数将被调用以对事件进行排序、分页或过滤。
<table st-table="displayedCollection" st-safe-src="rowCollection" st-pipe="customPipe">
$scope.customPipe = function(tableState){
console.log(tableState.sort);
}
我认为可以为您提供最佳控制的技术是创建一个插件,该插件将监视 table 状态的变化,并在检测到变化时调用提供的回调(在您的情况下,您将特别注意 table state
的 "sort" 命名空间
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 方法来响应更改
我的 smart-table 中的所有列都有 st-sort 指令。当用户单击特定列时,如何获取当前排序列?有什么技巧还是我必须听那些列上的点击事件 headers?
您可以使用指令 st-pipe,此函数将被调用以对事件进行排序、分页或过滤。
<table st-table="displayedCollection" st-safe-src="rowCollection" st-pipe="customPipe">
$scope.customPipe = function(tableState){
console.log(tableState.sort);
}
我认为可以为您提供最佳控制的技术是创建一个插件,该插件将监视 table 状态的变化,并在检测到变化时调用提供的回调(在您的情况下,您将特别注意 table state
的 "sort" 命名空间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 方法来响应更改