recherche

Maison  >  Questions et réponses  >  le corps du texte

angular.js - angular ng-repeat改变某个的背景颜色


如图所示,上面的5个块,用ng-repeat循环输出,怎样实现当点击某一块(如块2)时,该块的背景颜色变为红色?其他的块的颜色不变。
谢谢指点。

为情所困为情所困2744 Il y a quelques jours791

répondre à tous(4)je répondrai

  • 大家讲道理

    大家讲道理2017-05-15 17:00:27

    Il y a trop de méthodes, ng-click, ng-class, la directive peut être implémentée
    Il s'agit d'une méthode directe, pour référence seulement
    html :

    <p>
        <span ng-class="{'selected':selected==s}" ng-repeat="s in list" ng-bind="s" ng-click="changeStatus(s)"></span>
    </p>

    js

    $scope.list = [1,2,3,4,5];
    $scope.changeStatus = function(index){
        $scope.selected = index;
    }
    

    répondre
    0
  • 黄舟

    黄舟2017-05-15 17:00:27

    Ajouter un événement de clic. Passez le $index et le $event de la boucle en cours. Ensuite, vous pouvez le gérer vous-même via angulaire jq.

    répondre
    0
  • phpcn_u1582

    phpcn_u15822017-05-15 17:00:27

    Vous donner un code tout fait :
    HTML

    <p class='options'>
        <span class='option' ng-class="{'selected':s._selected}" ng-repeat="s in orderStatus" ng-bind="s.l" ng-click="clickStatus(s)"></span>
    </p>

    JS

    $scope.clickStatus = function(prop) {
        prop._selected = !prop._selected;
    };

    CSS

    .option{display:inline-block;border:1px solid green;padding:.25em;margin:.5em .5em 0 0;}
    .option.selected{background:green;color:white;}

    Je prévois d'écrire une directive pour ce faire

    répondre
    0
  • 世界只因有你

    世界只因有你2017-05-15 17:00:27

    http://runjs.cn/detail/yfnwk6ho

    répondre
    0
  • Annulerrépondre