2017-02-01 4 views
2

https://sapui5.hana.ondemand.com/docs/api/symbols/sap.ui.core.ValueState.html#.Errorのようなカスタムコントロールのカスタム列挙型を作成したい。カスタムENUMタイプを作成する

私の質問は以下のとおりです。

  • どのように私はENUM型を作成することができますか?

  • カスタムコントロールでは、正しくENUM
    タイプを渡すことしかできません。与えられたENUMが有効かどうかをどのように検証できますか?

答えて

0
...あなたの列挙型を定義することから始め

MessageType.js

sap.ui.define([], function() { 
    "use strict"; 

    return { 
     Unread: "Unread", 
     Read: "Read" 
    }; 
}); 

次に、あなたがすることができるように、カスタムコントロールの依存関係としてこの列挙をマーク

値を検証します。もちろん

sap.ui.define(["sap/ui/core/Control", "/path/to/MessageType.js"], function(Control, MessageType) { 

     Control.extend("myControl", { 
      someMethod: function(sMessageType) { 
       // Validate if we are dealing with a valid message type 
       var aKeys = Object.keys(MessageType); 
       var bValidEnumValue = aKeys.some(function(sKey) { 
        if (MessageType[sKey]) { 
         return true; 
        } 
       }); 

       // Do other stuff.. 
      } 
     }); 
    }); 

MyControl.jsでは、有効な列挙型の値を扱っているかどうかを確認する方法は、あなたが何をしようとしているものに応じて異なる方法で実装することができます。

if (sMessageType === MessageType.Read) { 
    // do something 
} else if (sMessageType === MessageType.Unread) { 
    // do something else 
} else { 
    // throw an error? 
} 
関連する問題