Tring, чтобы добавить маршрут object
к основному маршруту (таблица), но возвращает this.getRouter is not a function
Ошибка.Uncaught TypeError: this.getRouter не является функцией
В главном контроллере:
onPress : function(oEvent) {
this._showObject(oEvent.getSource());
},
_showObject : function (oItem) {
this.getRouter().navTo("object", {
objectId: oItem.getBindingContext().getProperty("task_id")
});
},
В Component.js (я проверил, это уже загружено, никакой ошибки не производится)
sap.ui.define(["sap/ui/core/UIComponent"],
function (UIComponent) {
"use strict";
return UIComponent.extend("cts.mobile.Component", {
metadata : {
rootView : "cts.mobile.view.TaskTest",
routing : {
"config": {
"routerClass": "sap.m.routing.Router",
"viewType": "XML",
"viewPath": "cts.mobile.view",
"controlId": "taskapp", //in task.view.xml
"controlAggregation": "pages",
"async": true
},
"routes": [
{
"pattern": "",
"name": "task",
"target": "task"
},
{
"pattern": "ProductCollection/{objectId}",
"name": "object",
"target": "object"
}
],
"targets": {
"worklist": {
"viewName": "TaskTest",
"viewId": "TaskTest",
"viewLevel": 1
},
"object": {
"viewName": "Object",
"viewId": "object",
"viewLevel": 2
}
}
}
},
init : function() {
UIComponent.prototype.init.apply(this, arguments);
// Parse the current url and display the targets of the route that matches the hash
this.getRouter().initialize();
}
});
}
);
это значение в _showObject:
f {mEventRegistry: Object, oView: f}
Как исправить эту ошибку?
Вы можете определить класс BaseController и использовать его для определения других контроллеров. В примерах SAPUI5 есть этот базовый контроллер. И метод getRouter определен там. Вам не хватает этой части. – Huseyin