Я пытаюсь расширить базовый пример tree и добавить навигацию крошек сверху.
Просмотр
<mvc:View
controllerName="sap.m.sample.Tree.Page"
xmlns:mvc="sap.ui.core.mvc"
xmlns="sap.m">
<Breadcrumbs id="bread" currentLocationText="{/sNode}">
</Breadcrumbs>
<Tree
id="Tree"
items="{path: '/'}"
toggleOpenState="onToggle">
<StandardTreeItem id="item" title="{title}" type="Navigation" press="test"/>
</Tree>
Контроллер
onInit: function(evt) {
// set explored app's demo model on this sample
var oModel = new JSONModel(jQuery.sap.getModulePath("sap.m.sample.Tree", "/Tree.json"));
var data = this.getView().setModel(oModel);
},
onToggle: function(oEvent) {
var lItem = oEvent.getParameters().itemContext.sPath;
var lItem2 = oEvent.getParameter("itemContext");
var nodes = this.getView().getModel().getProperty(lItem);
var sNode = this.getView().getModel().getProperty(lItem).title;
var oBreadCrumbs = this.byId("bread");
if (!(paths.includes(lItem))) {
arr.push(sNode);
} else {
var index = arr.indexOf(sNode);
paths.length = index + 1;
arr.length = index + 1;
}
paths.push(lItem);
oBreadCrumbs.removeAllLinks();
for (var i = 0; i < arr.length; i++) {
if (i == arr.length - 1) {
oBreadCrumbs.setCurrentLocationText(arr[i]);
} else {
var link = new sap.m.Link({
text: arr[i],
press: [this.tryOne, oBreadCrumbs]
});
oBreadCrumbs.addLink(link);
}
}
},
tryOne: function(oEvent) {
var t = oEvent.getSource();
var n = this.indexOfLink(t);
this.removeAllLinks();
this.setCurrentLocationText(arr[n]);
for (var i = 0; i < n; i++) {
var li = new sap.m.Link({
text: arr[i],
press: ? ? ? ?
});
this.addLink(li);
}
},
Итак, что я делаю сейчаскогда узел дерева раскрывается, заголовок добавляется в навигацию «хлебные крошки» как ссылка.Теперь я хочу, чтобы пользователь нажимал ссылку в навигационной системе, все ссылки после нажатой должны быть удалены, а нажатой должна быть текущая позиция.
С помощью функции tryOne
я повторяю всю процедуру, находя последний нажатый элемент, добавляю его в массив, удаляю все и, наконец, снова присоединяю массив к элементу управления ссылками.
Моя проблема в том, что эта функция работает правильно только в первый раз.После второго раза перестает работать.Есть идеи, пожалуйста?