我有一个用Angular 2用NativeScript编写的应用程序。在其中,我有一个像这样的列表视图:
<ListView row="1" [items]="items" (itemTap)="onNavigationItemTap($event)" class="root-drawer-content">
<ng-template let-item="item">
<StackLayout class="root-item-stack-layout">
<Label [text]="item.title" textWrap="true" class="btn btn-primary" [class.btn-active]="item.enabled"></Label>
<StackLayout height="1" class="root-drawer-content"></StackLayout>
</StackLayout>
</ng-template>
</ListView>
如何强制禁用特定项目?在视觉和行为方面。
答案 0 :(得分:1)
您快到了。当您使用item.enabled属性选择btn-active类时,可以将相同的逻辑应用于禁用(您的自定义控件,例如将背景颜色更改为灰色以显示禁用)到StackLayout。
<ng-template let-item="item">
<StackLayout class="root-item-stack-layout" [class.enabled]="item.enabled">
<Label [text]="item.title" textWrap="true" class="btn btn-primary" [class.btn-active]="item.enabled"></Label>
<StackLayout height="1" class="root-drawer-content"></StackLayout>
</StackLayout>
</ng-template>
并且对于功能,您可以在管理itemTap的.ts文件中进行处理。 (itemTap)=“ onNavigationItemTap($ event)”
public onNavigationItemTap(args) {
const currentItemView = args.view;
const item = currentItemView.bindingContext;
if(item.enabled){
// do your stuff
}