Angular 角度7。单击时在3个状态之间无限期迭代(为表格排序)

Angular 角度7。单击时在3个状态之间无限期迭代(为表格排序),angular,typescript,Angular,Typescript,我想在Angular 7中订购一个表格,当我点击标题时,我想在asc、desc、disabled三种状态之间切换。在typescript中无限期地在这三种状态之间迭代的最佳方式是什么?您可以创建一个保存该状态的变量 设currentFilter=0 myState=[asc、desc、disabled] 然后单击=onFilter 使用筛选器{this.currentFilter==2?this.currentFilter=0:this.currentFilter+=1}上的方法 这样,您就已经

我想在Angular 7中订购一个表格,当我点击标题时,我想在asc、desc、disabled三种状态之间切换。在typescript中无限期地在这三种状态之间迭代的最佳方式是什么?

您可以创建一个保存该状态的变量

设currentFilter=0

myState=[asc、desc、disabled]

然后单击=onFilter

使用筛选器{this.currentFilter==2?this.currentFilter=0:this.currentFilter+=1}上的方法

这样,您就已经拥有了当前的状态,单击此处,您可以在三个。。您甚至可以使用{{myState[currentFilter]}将其添加到标记中

不过,在过滤逻辑上,您需要创建一个排序方法,如果已经设置了该方法,则需要创建Idk。您可以在onFilter方法内调用它,然后使用新值

如果你想保持一切简单和干净,我会选择:

filter = {
   currentFilter: 0,
   state: [asc, desc, disabled],
   onFilter: this.onFilter // basically putting the onFilter function here
}
然后使用该对象进行迭代。您甚至可以将它作为类导出到某个地方,并在您希望进行过滤的任何地方重用它

export class TableFilter {
    currentFilter = 0;
    state = [asc, desc, disabled];
    onFilter() { ... };
}
在你的组件中

filter = new TableFilter();

然后使用该

您可以创建一个保存该状态的变量

设currentFilter=0

myState=[asc、desc、disabled]

然后单击=onFilter

使用筛选器{this.currentFilter==2?this.currentFilter=0:this.currentFilter+=1}上的方法

这样,您就已经拥有了当前的状态,单击此处,您可以在三个。。您甚至可以使用{{myState[currentFilter]}将其添加到标记中

不过,在过滤逻辑上,您需要创建一个排序方法,如果已经设置了该方法,则需要创建Idk。您可以在onFilter方法内调用它,然后使用新值

如果你想保持一切简单和干净,我会选择:

filter = {
   currentFilter: 0,
   state: [asc, desc, disabled],
   onFilter: this.onFilter // basically putting the onFilter function here
}
然后使用该对象进行迭代。您甚至可以将它作为类导出到某个地方,并在您希望进行过滤的任何地方重用它

export class TableFilter {
    currentFilter = 0;
    state = [asc, desc, disabled];
    onFilter() { ... };
}
在你的组件中

filter = new TableFilter();

然后用这个

好主意,弗朗西斯科。它工作得很好。非常感谢你的好主意。它工作得很好。非常感谢