【发布时间】:2019-08-15 19:54:06
【问题描述】:
作为序言,我找到了一个在我尝试过的情况下适合我的解决方案,但我对 javascript 和 RXJS 还很陌生,并且不完全理解该解决方案的作用,所以我不能确定如果它适用于所有情况。
我正在使用响应式表单并拥有复选框数组,我想做的是获取用于生成复选框的所有键的数组,但没有任何未选中的框。理想情况下,我可以使用它来返回其他值,例如用户可读的字符串,但这远不重要,因为我可以很容易地在单独的步骤中做到这一点。我自己想出了一些方法,但它们似乎不是很健壮或性能不佳。
我会回复this thread,但我缺乏声誉。
这是我找到的最好的解决方案,我很乐意使用它,但我对 RXJS 或 javascript 中的地图没有太多经验,所以我不完全确定它在做什么:
this.controlNames = Object.keys(this.checkboxGroup.controls).map(_=>_); //This seems to just produce an object of control keys as properties and their value
this.selectedNames = this.checkboxGroup.valueChanges.pipe(map(v => Object.keys(v).filter(k => v[k]))); //Some sort of magic happens and an array is generated and contains only the keys whose values are 'true'
我尝试将 sn-p 拆分并使用 console.log 来测试它在每个步骤中所做的事情,但它确实没有给我太多有用的信息。任何建议或更好的想法都将不胜感激,在 javascript 中似乎有很多人们遵守的约定,并且很难区分什么是约定和实际在做什么。
【问题讨论】:
标签: javascript angular typescript rxjs angular2-forms