2017-02-01 5 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" 
    }; 
}); 

Далее, отметьте это перечисление в качестве зависимости в пользовательском элементе управления, так что вы можете подтвердите значение.

MyControl.js

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.. 
      } 
     }); 
    }); 

Конечно способ проверить, если вы имеете дело с могут быть реализованы по-разному в зависимости от того, что вы пытаетесь сделать допустимым значением перечисления.

if (sMessageType === MessageType.Read) { 
    // do something 
} else if (sMessageType === MessageType.Unread) { 
    // do something else 
} else { 
    // throw an error? 
}