我正在努力使用Angular和Ngrx上的应用程序填充下拉菜单。该应用使用下拉列表组件,该下拉组件在整个应用程序中用于下拉列表,因此我无法修改它。
该组件的HTML对我的问题最重要的是:
:<option *ngFor="let option of options" [value]="stringifyOption(option.value)" [selected]="option.value === (selectedValue | async)">
{{option.text}}
</option>
我从商店中获得了下拉选项,这是对象(dateOptions)的数组。每个对象都有一个属性值(周),我将获得和设置为下拉列表的选项。
this.weekDropdownOptions = dateOptions.map(weekObj => weekObj.week);
游戏机中的日志记录dropdownoptions返回像我期望的那样的选项数组,如这样:
["04/01 - 04/07", "04/08 - 04/14"]
我的HTML具有下拉列表的选择器,并设置[options]="weekDropdownOptions"
我似乎无法克服这个错误:
无效的pipeargument:'[对象对象]'for Pipe'asyncpipe'。
它指向下拉组件,但是我无法修改HTML。我可以在代码中做什么才能完成这项工作?
async
管道期望可观察到的对象。看到selectedValue
的填充方式以及为什么与async
管道一起使用会很有趣。
这是stackblitz https://stackblitz.com/edit/angular-vv7pzs
async管道订阅可观察或承诺,并返回其发出的最新值。
根据错误,SelectedValue是一个对象,因此您无法使用异步管。