2016-11-10 55 views
0

考虑下面的标记。这是手风琴的情况。我必须应用不同的css(背景颜色)到打开的。为此,我希望使用ng-class指令。现在,打开的标题总是将aria-expanded属性设置为true。对所有其他人都是虚假的。根据属性值通过ng-class添加和删除类

<v-pane-header class="header ng-scope ng-isolate-scope" role="tab" tabindex="0" aria-selected="true" aria-expanded="true"> 

我该如何做到这一点。我知道如何处理任何模型变量等。注意aria-expanded属性是由手风琴插件自动添加的。

+0

我试过谷歌搜索,我可以使用ng-class和ng-class =“{'disabled-appointment':content.slots.length == 0}这样的模型变量”,但我没有得到这个属性的想法。全部 – tariq

+0

您可以创建我们可以查看的最小可能代码的小提琴吗? –

+0

@MuhammadUsman这有点困难,因为手风琴是由一个插件构建的,并且有很多其他的依赖关系。 – tariq

回答

0

我采取了一种非常不同的方法来解决这个问题。我没有通过ng代码或者代码中的其他函数或方法来做这件事,而是自己制作了手风琴插件。手风琴动态添加了aria-expanded属性。所以我在插件添加了aria-expanded属性的地方对插件代码和应用样式属性进行了更改。现在它工作完美。

function expand() { 
    accordionCtrl.disable(); 

    paneContent.attr('aria-hidden', 'false'); 

    paneHeader.attr({ 
     'aria-selected': 'true', 
     'aria-expanded': 'true', 
     'style': 'background-color:#FFF0C9 !important' // Added style here. Can add a class too though. 

    }); 

    emitEvent('onExpand'); 
    // Rest of the code...... 

这不是一个答案,我通过纳克级的做这件事的问题,但仍然给出了一个可能的方法对任何人试图实现类似的事情。