2016-04-05 10 views
0

ここで、ビューの入力日付をクリアするにはどうすればいいですか?入力データの初期化

データが保存され、メニューからページにアクセスすると、入力ボックスに古いデータが表示されます。

私はonInit()関数を試しましたが、ビューにはじめて起動します。

navtoコールは、defaultTimesページ(ビュー/コントローラ)を呼び出すBaseControllerにあります。

onNavToDefaultTimes : function(oEvent) { 
    this.getRouter().navTo("defaultTimes"); 
} 

マイクリアコードがdetaultTimesの_onRouteMatched機能していた.....

_onRouteMatched : function(oEvent) { 
var view = this.getView(); 
view.byId("shopInput").setValue(""); 
view.byId("effectiveDateFrom").setValue(""); 
view.byId("shop24Hrs").setSelected(false); 
view.byId("shopClosed").setSelected(false); 
}, 

問題はしかし、_onRouteMatchedもデフォルトの倍以下のページのnavBackからcallledされます。そして、私はこの場合にフィールドをクリアしたくありません。

ベースコントローラのonNavToDefaultTimes関数からクリアを実装するにはどうすればよいですか?

例を挙げてください。

答えて

0

次のいずれかのオプションを選択し、保存するためのコードが実行された後、それらのいずれかを置くことができます。

オプション1:

var yourInput = this.getView().byId("yourInputID"); 

yourInput.setValue(""); 

オプション2(誰かを試してみてください):

var yourInput = this.getView().byId("yourInputID"); 

yourInput.unbindValue(); 
yourInput.unbindElement(); 
yourInput.unbindObject(); 

またはビューが表示されるたびに実行される次のような方法でコードを置く:

を0
onAfterRendering: function(){ 

    //Option choosed 

} 
+0

お返事ありがとうございます。問題は、私が次のページに戻ったときに詳細を保持する必要があることです。私は質問に詳細を追加しました。 –

+0

あなたが今質問していることを理解しているかどうかわかりませんが、特定のView(View1など)の入力をリセット/クリアしたい場合は、そのコードを対応するController (すなわち、コントローラ1)。 また、別のヒントは、最初の答えで述べたように、_onRouteMatchedがビューに移動するたびに呼び出されるので、保存ボタンをクリックすると入力をリセット/クリアするようにしてくださいビューをナビゲートし、データが入力に表示されると、メソッドが呼び出されると入力がクリア/リセットされます。 – carlosfcmendes

0

ビューに移動またはビューからナビゲートされるたびに、その後、あなたは

   sap.ui.getCore().byId("test").invalidate(); 
以下のように無効化ビューを使用することができる、のは、あなたの入力フィールドが作成されるビューの名前はtest.jsあるとしましょう

これにより、ビューに戻るときにビューがレンダリングされ、onBeforeRendering()がトリガーされます。

関連する問題