Можно ли создать sap.ui.controller так:Создать UI5-контроллер на лету
sap.ui.controller("controllerId", "{onAfterRendering: function(){}}");
Use-Case, у меня есть сервер, который создает контроллер на лету , если нужно.
Когда я получаю логики как строки и попытаться использовать его так:
var oView = sap.ui.view({
type: sap.ui.core.mvc.ViewType.JSON,
viewContent: viewContent,
controller: sap.ui.controller("controllerId", "{onAfterRendering: function(){}}")
});
контроллер всегда неопределенными.
Любые намеки на эту тему?
EDIT 2:
После Тимоти Грут обновленный ответ:
Да, я отправить AJAX-вызов сервера. Я попытался это прямо сейчас:
var ajaxAnswer = 'sap.ui.controller("testForm", { oView: null, onAfterRendering: function(oEvent){oView = oEvent.getSource();} });'
eval('var controller =' + ajaxAnswer);
Но controller
является неопределенным.
EDIT:
Согласно Ответ, я думаю, что мне нужно сделать это еще яснее:
Эта часть "{onAfterRendering: function(){}}"
приходит от сервера в виде строки. Я не могу удалить кавычки из этой строки. Я мог проанализировать его с помощью JSON.parse()
, но это не может разобрать функцию.
этот вопрос стал лучше, чем я думал. подожди. –
см. Обновленный ответ. –