2016-06-27 2 views
0

Я пытаюсь определить собственный тип данных, расширив SimpleType. Я хочу связать его с полем ввода. Но что-то я должен делать неправильно, потому что мой пользовательский тип полностью игнорируется.Определить пользовательские типы данных

Вот мои snipplets:

sap.ui.define([ 
    "sap/ui/model/SimpleType", 
    "sap/ui/model/ValidateException" 
], function (SimpleType, ValidateException) { 
    "use strict"; 

    return SimpleType.extend("my.model.customFloat", { 

     formatValue: function(oValue) { 

      return parseFloat(oValue); 
     }, 
     parseValue: function(oValue) { 


      if(isNaN(parseFloat(oValue))) { 
       return 0.0 
      } 

      return parseFloat(oValue); 
     }, 
     validateValue: function(oValue) { 
      if(isNaN(parseFloat(oValue))) { 
       throw new ValidateException(oValue+" is not a valid decimal value"); 
      } 
     } 

    }); 

}); 

и в моем view.xml я использовал свой собственный тип таким образом.

<Input value="{ path:'draftModel>SomeCustomValue', type: 'my.model.customFloat'}" change="onEditDoSomething"/> 

Но это не сработает. Когда я что-то печатаю и хочу отлаживать parseValue, formatValue или validateValue, методы никогда не вызывались. Что я делаю не так?

ответ

2

Вам также необходимо загрузить свой собственный тип.

Попытка добавления «my/model/customFloat» в раздел определения вашего контроллера. Нет необходимости превращать его в псевдоним, например:

sap.ui.define([ 
     "sap/ui/model/SimpleType", 
     "sap/ui/model/ValidateException", 
     "my/model/customFloat" 
    ], function (SimpleType, ValidateException) { 
     "use strict"; 
     ... 
+0

Спасибо, что была проблема. Сейчас он работает –

Смежные вопросы