在哪里,以及如何清除视图上的输入日期....
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?
你能举个例子。
答案 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()时,这会使视图再次呈现