AngularJS (Smart-Table): 如何在不更改 smart-table.js 文件的情况下修改 "skipNatural" 布尔值

AngularJS (Smart-Table): How to modify "skipNatural" boolean without changing smart-table.js file

我想更改 "skipNatural" 布尔值,它是 smart-table.js 文件的一部分。但是,由于我在需要时使用 Bower 更新模块,所以我确信当我执行 运行 更新时,它将覆盖我的布尔值更改。这是它在 Smart-Table 文件中的样子:

ng.module('smart-table')
  .constant('stConfig', {
    pagination: {
      template: 'template/smart-table/pagination.html',
      itemsByPage: 10,
      displayedPages: 5
    },
    search: {
      delay: 400, // ms
      inputEvent: 'input'
    },
    select: {
      mode: 'single',
      selectedClass: 'st-selected'
    },
    sort: {
      ascentClass: 'st-sort-ascent',
      descentClass: 'st-sort-descent',
      skipNatural: false,
      delay:300
    },
    pipe: {
      delay: 100 //ms
    }
  });

他们是否可以通过扩展 Smart-Table 常量或 运行 装饰器来修改布尔值?目前,我正在调用我的 smart-table.min.js 文件,然后使用 ocLazyLoad,我正在调用其他文件。

此外,我在整个站点中使用了多个 table,我想在某一点切换布尔值而不是将多个 table headers 的值设置为减少冗余

谢谢!

摘自官方文档(在Sort-data中,很容易遗漏)

You can skip the "natural order" state by adding st-skip-natural="true" as attribute of your th element.

所以只需将属性添加到您的 st-sort,就像这样

<th st-sort="birthDate" st-skip-natural="true">birth date</th>

编辑:

参考 GitHub 上的 Issue,作者使 skip-natural 全局可配置,您可以在应用程序的 .config 中覆盖 Smart Table 的全局属性像这样的部分,因此您不必触摸任何源文件

angular.module('myModule', []).config(function(stConfig) {
  stConfig.sort.skipNatural = true;
});

文档在 全局配置 部分下进行了介绍, 文档还提供了 list of defaults