2017-02-23 8 views
0

タイトルにはほとんどすべてが含まれていると思います。ここでは一例です:接続しているユーザーに基づいてバインディング結果に基づいてコントロールを非表示にする方法

<Select id="catComboBox" change="onChangeCat" items="{ path: '/ReasonCategorySet', sorter: { path: 'Zcat' } }"> 
    <core:Item key="{Zcat}" text="{Zdesc}"/> 
</Select> 

、選択は私がそこにデータがないことを知っていたら、このコントロールを非表示にしたいと思いますemptyandすることができます。

コントロールがデータを正常に読み込んだことを検出するにはどうすればよいですか?

答えて

2

最短可能な解決策がバインディング式である:

<Select id="catComboBox" 
     change="onChangeCat" 
     items="{ path: '/ReasonCategorySet', sorter: { path: 'Zcat' } }" 
     visible="{ path: '/ReasonCategorySet', formatter: 'checkCount' }"> 
    <core:Item key="{Zcat}" text="{Zdesc}"/> 
</Select> 

とcheckCountはこのようなものになることができます。例はhereです。

<Select id="catComboBox" 
     change="onChangeCat" 
     items="{ path: '/ReasonCategorySet', sorter: { path: 'Zcat' } }" 
     visible="{=${/ReasonCategorySet}.length > 0}"> 
    <core:Item key="{Zcat}" text="{Zdesc}"/> 
</Select> 
+0

フォーマッタが必要ないため、あなたの方がさらに優れています!ありがとう – flowx1710

1

OKが)解xを見つけた:ここ

はコードです:

this.oModel.attachRequestCompleted(function(data) { 
    if (that.getView().byId("catComboBox").getItems().length === 0) { 
     that.getView().byId("catComboBox").setVisible(false); 
    } 
    }) 
1

またあなたが同じモデルプロパティにvisibleプロパティをバインドすると、カテゴリセットが持っているかどうかを評価しまう特別なフォーマッタを使用することができます任意の項目。

checkCount: function(aItems) { 
    return Array.isArray(aItems) && aItems.length > 0; 
} 
+0

ご使用のバージョンをお勧めします。ありがとう! – flowx1710

関連する問題