我有一个包含侧面导航的xml视图片段
<SideNavigation id="sideNavigation" expanded="false">
<item>
<NavigationList expanded="false">
<NavigationListItem text="Start" icon="sap-icon://employee" select="initChangeView" expanded="false">
</NavigationListItem>
<NavigationListItem text="On Track" icon="sap-icon://building" select="initChangeView" expanded="false">
</NavigationListItem>
<NavigationListItem text="Details" icon="sap-icon://employee" select="initChangeView" expanded="false">
</NavigationListItem>
<NavigationListItem text="Comparison" icon="sap-icon://employee" select="initChangeView" expanded="false">
</NavigationListItem>
</NavigationList>
</item>
</SideNavigation>
我要在选择一项时添加和删除自定义CSS类。
我想做的是从每个NavigationListItem中删除类“ selectedNavItem”,并将其添加到选定的类中,但是出现TypeError
无法读取未定义的属性“ removeStyleClass”
controller.js中的处理程序:
jQuery.sap.require("xxx.controller.NavigationBar");
[...]
initChangeView: function(oEvent){
setExpandedToFalse(this);
changeView(this, oEvent.getSource());
},
[...]
还有我的NavigationBar.js:
function changeView(controller, source) {
var items = source.getParent().getItems();
console.log(items);
for(i = 0; i < items.length; i++)
{
items[i].getBindingContext().removeStyleClass("selectedNavItem");
}
source.addStyleClass("selectedNavItem");
[...]
谢谢!
最佳答案
都没有items[i].getBindingContext().removeStyleClass("selectedNavItem");
也不items[i].removeStyleClass("selectedNavItem");
将工作。
ContextBinding是特定于对象绑定上下文的
,与外观和控制感无关。
另外,removeStyleClass
不适用于NavigationListItem
,因为removeStyleClass
在其任何祖先中都不可用。如果看一下它的层次结构,它就像Element> Item> NavigationListItem
。removeStyleClass
仅适用于扩展Control
类的控件
关于javascript - SAPUI5删除聚合元素的CSS类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37510468/