angular - 利用两个选择刷新角度选择选项
问题描述
我有这个选择:
模板:
<div class="select">
<select (change)="getIdTipoVariacao(item.value.tipo)" formControlName="tipo" class="select-text">
<option class="dropdown-item" selected>{{item.value.tipo || 'Tipo da Variação'}}</option>
<option [hidden]="item.value.tipo == tipoVariacao.valor" *ngFor="let tipoVariacao of tiposvariacoes;let j = index"
class="dropdown-item">{{tipoVariacao.valor}}</option>
</select>
<span class="select-highlight"></span>
<span class="select-bar"></span>
</div>
在我的组件中,通过函数 getIdTipoVariacao() 我捕获了我选择的“variacao”的 id:
getIdTipoVariacao(variacao:string) { // take the id of one "tipo de variação" to send to function get-lista-valor-atributo to get the list of attributs of my "variation":
for(let i=0;i<this.tiposvariacoes.length;i++){
if(this.tiposvariacoes[i].valor == variacao){
this.idTipoVariacao = this.tiposvariacoes[i].id
}
}
this.listaValoresAtributo(this.idTipoVariacao);
}
listaValoresAtributo(id: number){
console.log(id)
this.tipoProdutoService.listaValoresAtributo(id)
.pipe(
take(1)
)
.subscribe((res) => {
console.log(res);
this.listaAtributos = res.data.valores_atributos;
this.loadingfiltro = false;
},
(err: HttpErrorResponse) => {
if (err.status == 401) {
this.authService.Logout();
}
if (err.error.data.erro) {
this.toastrService.showToast(false, 'Ops, temos um problema', err.error.data.erro);
} else {
this.toastrService.showToast(false, 'Ops, temos um problema', 'Entre em contato com o suporte!');
}
})
}
一切都很好,这个函数获取我的变体的 id 并发送到我的后端,我返回一个数组(this.listaAtributos),我必须与另一个选择相结合。
在我的第二个选择中,我做了一个 ngfor 尝试根据我的服务器的答案来配置选项,但没有一个数据是 copulate。如果我在 this.listaAtributos 中打印一个 console.log,我会看到我的数组包含我需要计算的数据。我怎样才能做到这一点?
我的第二个选择:
<div class="col-md-2">
<div class="select">
<select formControlName="valor" class="select-text">
<option class="dropdown-item" selected>{{item.value.valor || 'Valor'}}</option>
<option *ngFor="let ValorAtributo of listaAtributos;let x = index"
class="dropdown-item">{{ValorAtributo.valor}}</option>
</select>
<span class="select-highlight"></span>
<span class="select-bar"></span>
</div>
</div>
可观察的?有人可以教我吗?
解决方案
推荐阅读
- maven - Maven 项目构建,但 IntelliJ IDEA 中的依赖项似乎不可用
- javascript - 在 React js 中,我们如何在子组件中设置 Props 并将 props 值传递给父组件
- r - 在 R 中合并两个数据框会导致某些观察结果没有连接
- docker - 从 Docker for Mac 访问 docker 容器
- c# - 如何使用反射将一个对象动态转换为另一个对象?
- python - 在字典中查找素数?
- sql - teradata 中的动态选择表
- shell - 尽管使用 docker build 成功添加了 shell 脚本,但 docker run 无法运行 shell 脚本(找不到文件)
- latex - 在这种编程中合适的 Latex 格式是什么?
- go - ansible 是否支持用 Go 编写的模块?