我正在做一个随选定选项而变化的表格。
<select multiple class="form-control col-6" id="efeitos" [(ngModel)]="test" name='effect'>
<option *ngFor='let eff of effects' [ngValue]="eff">{{eff.name}}</option>
</select>
<textarea class="col-5" readonly>{{test.desc}}</textarea>
textarea永远不会出现。
<p>{{test | json}}</p>
显示:[{“ name”:“ effect”,“ desc”:“ Lorem ipsum dolor”}]而不是所需的{“ name”:“ effect”,“ desc”:“ Lorem ipsum dolor”} >
第一篇文章,请帮忙
答案 0 :(得分:0)
您在test
中获得了数组,因为您使用了multiple
属性,只需删除multiple
(如果您需要multiple
,那么我认为Array是给您的预期结果)
答案 1 :(得分:0)
也可以这样:{{
{{test [0] | json}}
}}
答案 2 :(得分:0)
将属性multiple
提供给select
标签时,可能会有多个选择。因此,test
变量自然是一个数组。您可以尝试使用数组desc
函数从所有选定元素中收集map
个属性。
控制器
export class AppComponent {
...
test: Effect[] = [{ 'name': '', 'desc': 'please select an effect'}];
getDesc() {
return this.test.map(item => item.desc)
}
}
模板
<textarea class="col-5" readonly>
{{ getDesc() }}
</textarea>
注意:此方法效率低下。如果您不是手动控制更改检测策略,则getDesc()
函数可能会被多次调用。当test
数组中的元素过多时,这将成为瓶颈,因为每次调用都会重复整个数组。