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

감사합니다. 이제 작동합니다. –