生成器功能不具有所需的功能(Angular 5)

时间:2018-10-10 02:04:14

标签: javascript angular typescript

这是我第一次使用生成器函数,所以很抱歉,如果我不正确地使用它。.

好吧,基本上我有一个按钮,可以对用户列表进行排序,有3个排序选项-按谁可用,谁不可用然后按名称排序。

现在,我想循环浏览这些选项,因此每次您单击按钮时,它只会在下一个yield之前对它进行排序,依此类推。

所以我创建了一个像这样的函数。

*order() {
   yield this.crewMembers = _.orderBy(this.crewMembers, ['available'], ['asc']);
   yield this.crewMembers = _.orderBy(this.crewMembers, ['available'], ['desc']);
   yield this.crewMembers = _.orderBy(this.crewMembers, ['username'], ['desc']);
}

然后在我的html中

<button (click)="order().next()">ORDER</button>

现在它第一次生效,它将顺序更改为availableasc,但是如果我再次单击该按钮,它将不起作用;

我希望得到的结果是能够无限次按下按钮并循环选择我的订单选项。我这样做对吗?

任何帮助将不胜感激!

谢谢

1 个答案:

答案 0 :(得分:2)

每次调用order()时,都是从头开始生成器的新实例。您需要调用一次order(),将其保存在一个变量中,然后每次单击该按钮时就对该变量调用.next()