2016-04-05 45 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()被触发时,这会使视图再次呈现