我正在使用带有Angular的NativeScript制作应用程序。有一个页面有两个标签需要作为下拉选择框。它们设置为显示listPicker。
HTML的示例
<StackLayout orientation="horizontal" class="field_row">
<Label text="Type:" class="field_label"></Label>
<Label text="{{ job_type }}" (tap)="showList('type')" class="type job_field dd-label"></Label>
</StackLayout>
<StackLayout orientation="horizontal" class="field_row">
<Label text="Category:" class="field_label"></Label>
<Label text="{{ job_category }}" (tap)="showList('category')" class="category job_field dd-label"></Label>
</StackLayout>
<StackLayout orientation="horizontal" class="field_row" [visibility]="assignActive ? 'visible' : 'collapse'">
<Label text="Assigned:" class="field_label"></Label>
<Label text="{{ job_worker }}" (tap)="showList('workers')" class="workers job_field dd-label"></Label>
</StackLayout>
显示列表的功能
public showList(name){
this.showType = false;
this.showCat = false;
this.showPropStat = false;
this.showWorkers = false;
this.showListPicker = true;
switch(name) {
case 'type':
this.showType = true;
console.log(this.jobTypes);
break;
case 'category':
this.showCat = true;
console.log(this.jobCats);
break;
case 'status':
this.showPropStat = true;
break;
case 'workers':
this.showWorkers = true;
console.log(this.jobWorkers);
break;
}
}
当我单击Type的标签时,它会正确显示,但是单击Category或Workers它会显示listpicker的区域,但是它们中没有显示任何项目。
设置列表项的部分将向控制台输出正确的列表。
奇怪的是,通过向GridLayout添加另一行并将listpickers放在他们自己的行中似乎已经解决了这个问题。