这是我第一次使用生成器函数,如果我使用不正确,很抱歉..
好吧,基本上我有一个按钮可以对用户列表进行排序,有 3 个排序选项 - 按谁有空排序、谁不可用,然后按姓名排序。
现在我想循环浏览这些选项,这样每次您单击按钮时,它都会按下一个产量
排序,依此类推。
所以我创建了一个像这样的函数..
*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>
现在它第一次工作,它将顺序更改为可用
,asc
,但如果我再次单击按钮,它就不起作用;
我想要的结果是能够无限地按下按钮并循环浏览我的订单选项..我这样做对吗?
如有任何帮助,我们将不胜感激!
谢谢
最佳答案
每次调用 order()
时,都会从头开始启动生成器的新实例。您需要调用 order()
一次,将其保存在变量中,然后每次单击按钮时对该变量调用 .next()
。
关于javascript - 生成器函数没有所需的功能(Angular 5),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52731575/