首页 > 解决方案 > 生成器函数没有所需的功能(Angular 5)

问题描述

这是我第一次使用生成器功能,如果我使用不正确,请见谅..

好的,所以基本上我有一个按钮,可以订购用户列表,有 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但如果我再次单击该按钮,它就不起作用;

我想要的结果是能够无限按下按钮并循环浏览我的订单选项。我这样做对吗?

任何帮助,将不胜感激!

谢谢

标签: javascriptangulartypescript

解决方案


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


推荐阅读