我有一个包含侧面导航的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/

10-09 04:35