J'essaie d'ouvrir l'accordéon si l'utilisateur a tapé quelque chose dans la barre de recherche ou si quelqu'un clique pour ouvrir l'accordéon, je les ai fait travailler séparément mais je ne peux pas faire fonctionner les deux en même temps.

Si je fais ça

<accordion-group is-open="status.open" ng-repeat="cat in cats | filter: query">

L'accordéon ne s'ouvre que lorsque l'utilisateur clique, et si je fais cela

<accordion-group is-open="query.length > 0" ng-repeat="cat in cats | filter: query">

L'accordéon ne s'ouvre qu'après que l'utilisateur a cherché quelque chose

Y a-t-il moyen de mettre ces deux ensemble? J'ai essayé mais ça n'a pas marché

<accordion-group is-open="query.length > 0 || status.open" ng-repeat="cat in cats | filter: query">

Voici mon code dans jsfiddle http://jsfiddle.net/goL848jn/3/

0
Zainab Abounassif 17 juil. 2015 à 17:16

2 réponses

Meilleure réponse

Vous en avez besoin à l'intérieur du contrôleur

$scope.$watch("query",function(newv){
    if(newv != undefined){
        if(newv.length > 0){
               $scope.open = true;
               $scope.$apply;
        }else{
               $scope.open = false;
               $scope.$apply;
        }
     }   

});

Et l'accordéon

<accordion-group is-open="open" ng-repeat="cat in cats | filter: query">
            <accordion-heading style="padding:0px;"> <i class="glyphicon" ng-class="{'glyphicon-minus': open, 'glyphicon-plus': !open}"></i>&nbsp;&nbsp;{{cat.title}}</accordion-heading>    

Violon de travail http://jsfiddle.net/0ynqomrt/

1
Vanojx1 17 juil. 2015 à 15:49

Vos accordéons jsfiddle ne semblent pas fonctionner pour moi ...

Je pense que votre clé est d'avoir le is-open lié à une variable dans la portée de votre contrôleur. Le groupe d'accordéon crée sa propre portée. Alors essayez d'abord quelque chose comme ça:

<accordion-group heading="CATS" is-open="$parent.openMe">

Découvrez plus ce que je veux dire dans ce plunker. Je ne sais pas si c'est exactement ce que vous recherchez, mais j'espère que cela vous mettra sur la bonne voie?

http://plnkr.co/edit/uwxza87gEsCxopecAlCd?p=preview

1
DWDuck 17 juil. 2015 à 14:52