2016-04-05 76 views
0

哪裏,以及如何清除視圖上的輸入日期....正在初始化輸入數據

E.g.當數據被保存並且我從菜單訪問我的頁面時,舊數據仍然顯示在輸入框中。

我試過了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(); 

或者把代碼中的以下方法,它是每一個被顯示在觀看時間執行:

onAfterRendering: function(){ 

    //Option choosed 

} 
+0

感謝您的回覆。問題是,當我從下一頁返回時,我需要保留詳細信息。我已經添加了更多的細節問題。 –

+0

我不知道我是否理解你現在要問的東西......但假設你想要重置/清除特定視圖的輸入(例如View1命名),你應該將代碼放在相應的控制器中(即Controller1)。 另一個提示,請試着在我的第一個答案中說,使用/讓代碼重置/清除輸入只是當你點擊保存按鈕,因爲_onRouteMatched被調用任何時候你瀏覽到視圖,所以當你點擊瀏覽視圖以及在輸入中顯示數據時,調用方法時,輸入將被清除/重置。 – carlosfcmendes

0

比方說在其中創建您的輸入欄視圖的名字是test.js,那麼每當你導航到視圖或從視圖導航時,您可以使用如下

   sap.ui.getCore().byId("test").invalidate(); 
無效視圖

當您回到視圖並且onBeforeRendering()被觸發時,這會使視圖再次呈現