#sapui5 #sap-fiori
#sapui5 #sap-fiori
Вопрос:
Я изменил имя контроллера деталей на DetailController.js
Я пытался
jQuery.sap.require("cts.alert.controller.DetailController");
И
sap.ui.define([
"cts/alert/controller/DetailController",
], function () {
})
в MasterController.js,
когда я использую this.detailfunction()
, он возвращается undefined
(но он работает в BaseController?)
Затем я попытался sap.ui.getCore().byId("__xmlview3--detailpage").getController().detailfunction()
:
sap.ui.getCore().byId("__xmlview3--detailpage")
вернул представление, но getController не определен. Что мне делать?
Комментарии:
1. ваш DetailController действительно назван DetailController.controller.js ?
2. DetailController.js не сработает? Я думаю BaseController.js работает нормально. @Marc
3. Контроллеры, которые непосредственно используются представлениями, должны называться Bla .controller.js (это одна из основных функций, которую реализует пользовательский загрузчик модулей SAP;). Базовый класс контроллера — это обычный класс, который не должен иметь .controller.js расширение. Не рекомендуется использовать базовый контроллер непосредственно в представлении. Наследовать от него в противном случае пусто .controller.js и используйте это в своем представлении.
Ответ №1:
Если это служебный метод, возможно, имеет смысл переместить код вверх, к базе, предполагая, что оба контроллера расширяют его. Если нет, создайте третий служебный модуль и внедрите его как в master, так и в detail.
Комментарии:
1. Я понимаю. Я подробно использовал setInterval, и я хочу очистить его после нажатия кнопки навигации в Master. Итак, я должен сохранить идентификатор интервала в третьем модуле? Я не хочу делать идентификатор интервала глобальным. Спасибо ~
2. В этом случае у вас может быть глобальная jsonmodel, используемая для хранения состояния приложения. Не зная более подробной информации о структуре вашего приложения, я бы сказал, что ID будет принадлежать там. С этим на месте вы читаете / записываете в эту модель из обоих представлений. Надеюсь, это поможет.
3. Большое спасибо, я понимаю, как
busy
и государство. Это помогает.