2016-06-27 245 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

謝謝你是這個問題。它現在有效 –