2016-10-17 9 views
0

Я изменил имя подробно контроллера DetailController.jsКак получить доступ к функциям в Detail.controller.js в Master.controller.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 не определена. Что мне делать ?

+0

Ваш DetailController действительно называется DetailController.controller.js? – Marc

+0

DetailController.js не работает? Я думаю, что BaseController.js работает нормально. @Marc – Tina

+0

Контроллеры, которые непосредственно используются представлениями, должны быть названы Bla * .controller * .js (это одна из основных функций, которую реализует пользовательский загрузчик модуля SAP;). Базовым элементом контроллера является обычный класс, который не должен иметь расширение * .controller * .js. Не рекомендуется использовать базовый контроллер непосредственно в представлении. Наследуйте от него в противном случае пустой * .controller * .js и используйте это в своем представлении. – schnoedel

ответ

0

Если это полезный метод, имеет смысл переместить код на базу, предполагая, что оба контроллера расширят его. Если нет, создайте третий модуль утилиты и введите его как в мастер, так и в детали.

+0

Я понимаю. Я использовал setInterval в деталях, и я хочу очистить его после нажатия кнопки nav в Master. Так что я должен сохранить идентификатор интервала для третьего модуля? Я не хочу делать интервал id глобальным. Спасибо ~ – Tina

+0

В этом случае у вас может быть глобальная jsonmodel, используемая для хранения состояния приложения. Не зная подробностей о структуре вашего приложения, я бы сказал, что идентификатор будет принадлежать там. При этом вы читаете/записываете эту модель из обоих представлений. Надеюсь, поможет. –

+0

Большое спасибо, я понимаю, как и состояние 'busy'. Что помогает. – Tina