2017-08-18 15 views
0

誰でもコントローラのsetValueStateTextメソッドでi18nテキストを使用する方法を説明できますか?SAPUI5のコントローラで内部化i18nを使用する方法?

oTP.setValueStateText("{i18n>co_Maximal_60_h}"); 

ダイアログのエラーmsgには、実際のテキストではなく「{i18n> co_Maximal_60_h}」と表示されます。

+0

どの制御を使用しますか?それはビューまたはコントローラの中にありますか?この場合、 – n01dea

+0

はMaskInputです。はい、それはコントローラにあります!ありがとう! – user2405095

答えて

3

リソースバンドルには、コントローラでアクセス次の方法である:

... 
    var oResourceBundle = this.getView().getModel("i18n").getResourceBundle(); 
    oTP.setValueStateText(oResourceBundle.getText("co_Maximal_60_h")); 
... 
+0

@Andrii Naumovychよ、編集してくれてありがとう。眠くなる – n01dea

2

あなたはsetterメソッドを介した結合文字列を設定することはできません。 ここでは、2つのオプションがあります:

  1. は、ビュー内の結合の権利を設定する(同じ文字列を使用しますが、XMLで)
  2. ​​を利用:

    var oResourceBundle = this.getOwnerComponent().getModel("i18n").getResourceBundle(); 
    
    var sTxt = oResourceBundle.getText("co_Maximal_60_h"); 
    
    oTP.setValueStateText(sTxt); 
    

私は思います名前を "i18n"にしてBaseControllerに再利用可能なメソッドを追加することをお勧めします。必要なときにはいつでもthis.i18n( "i18n_key") 'を呼び出してください。

関連する問題