2017-02-23 34 views
0

我認爲幾乎所有的東西都在標題中。這裏有一個例子:如何隱藏基於綁定結果的控件

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

基於連接的用戶,選擇可能是emptyand我想一旦我知道有在那裏沒有數據來隱藏該控件。

如何檢測到控件已成功加載數據?

回答

2

最短可能的解決方案是表達結合。例如可以發現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

好找到了解決方案X):

下面是代碼:

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

或者,你可以看到屬性綁定到相同型號屬性,並使用特殊的格式,如果類別集具有將評估任何物品。

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

和checkCount可以是這樣的:

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

我更喜歡你的版本!謝謝 ! – flowx1710