如何使用primeng或angular2停用列表框中的一个或多个项目?

时间:2017-04-28 11:32:19

标签: angular listbox primeng

我正在尝试根据数据停用一个或多个项目。例如,我有一个城市列表,其中包含禁用/活动字段,我将城市名称推送到SelectItem[]数组中。

NewYork, active
Rome, disable
London, active
Istanbul, disable
Paris, active

enter image description here

 this.cities.push({label:'New York', value:'New York'});
 this.cities.push({label:'Rome', value:'Rome'}); // want to disable
 this.cities.push({label:'London', value:'London'});
 this.cities.push({label:'Istanbul', value:'Istanbul'}); // want to disable
 this.cities.push({label:'Paris', value:'Paris'});

我尝试使用primeng示例

渲染列表框
<p-listbox [options]="cities" [(ngModel)]="selectedCity"  filter="filter">
  <ng-template let-city pTemplate="item" >
        <div class="ui-helper-clearfix">
            <span >{{city.value}}</span>
        </div>
  </ng-template>      
</p-listbox>

在primeng中,列表框有一个名为disabled的属性。如果我设置它然后它禁用整个列表框。但我想只禁用特定项目。 这是已实施的Plunker https://plnkr.co/edit/7MHSzdmvIWNpdHsEy4F9?p=preview

1 个答案:

答案 0 :(得分:0)

你总是可以为selectedCity ...

创建一个mutator
private _selectedCity: string;
private set selectedCity(city:string) {
    if(isactive){... do stuff ...}
}

然而,显然这可能不适合用户体验,因为该项目仍然可以点击。