初始化输入数据

时间:2016-04-05 15:20:56

标签: sap sapui5

在哪里,以及如何清除视图上的输入日期....

E.g。保存数据后,我从菜单访问我的页面,旧数据仍显示在输入框中。

我已经尝试了onInit()函数,但只是第一次触发视图。

navto调用在BaseController中调用defaultTimes页面(视图/控制器)。

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调用的。在这种情况下,我不想清除字段。

如何仅从基本控制器的onNavToDefaultTimes函数实现clear?

你能举个例子。

2 个答案:

答案 0 :(得分: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

}

答案 1 :(得分:0)

假设创建输入字段的视图名称是test.js,那么无论何时导航到视图或从视图导航,都可以使用如下所示的无效视图

             sap.ui.getCore().byId("test").invalidate(); 

当您返回视图并触发onBeforeRendering()时,这会使视图再次呈现