Среда:
Каркас: SAPUI5
Версия: 1.65.6
IDE: web-ide
Проблема:
Мой код работает, но в соответствии с IDE может быть неправильно, Web-Ide возвращает ошибку:
location.reload () не разрешено. (sap-no-location-reload)
[ESLINT: (sap-no-location-reload)] * 1017 *
Код (минимальный для воспроизведения):
контроллер:
sap.ui.define([
"sap/ui/core/mvc/Controller",
"sap/ui/model/json/JSONModel"
], function (Controller, JSONModel) {
"use strict";
return Controller.extend("namespace.controller.App", {
onInit: function () {
this.getView().setModel(new JSONModel({
actualizationDate: new Date()
}), "frontEnd");
},
onPressRefresh: function(){
location.reload();
}
});
});
И представление:
<mvc:View
controllerName="namespace.controller.App"
xmlns:core="sap.ui.core"
xmlns:mvc="sap.ui.core.mvc"
xmlns="sap.m">
<Shell id="shell">
<App id="app">
<pages>
<Page id="page" title="{i18n>title}">
<content>
<Label text="{i18n>lastActualizedDateTime}" labelFor="lastActualizedTime" class="sapUiSmallMarginEnd"/>
<DateTimePicker
id="lastActualizedTime"
value="{path: 'frontEnd>/actualizationDate'}"
valueFormat="yyyy-MM-dd HH:mm:ss"
displayFormat="yyyy-MM-dd HH:mm:ss"
enabled="false"/>
<Button icon="sap-icon://refresh" type="Transparent" press="onPressRefresh"/>
</content>
</Page>
</pages>
</App>
</Shell>
</mvc:View>
Для воспроизведения вы можете напрямую скопировать код в WebIde, создавая шаблон из приложения SAPUI5.
Примечания:
- Я знаю, что код нормально работает с
location.reload();
, я буду sh, чтобы знать, является ли их правильным способом сделать то же самое в SAPUI5 (Под надлежащим образом я имею в виду не возвращать ошибку ESLINT) location.reload();
находится в onPressRefre sh на контроллере, это больше кода только для вас, чтобы вы могли воспроизвести проблему с помощью простой копии в вашем web-ide