Отображать цвет фона на li, который генерируется из ng-repeat - PullRequest
0 голосов
/ 27 апреля 2018

В приведенном ниже коде динамически отображается список li с изображением и текстом.

<ul class="presale">
                    <li ng-repeat="(k,v) in value | groupBy : 'presales_name'" ng-click="showData(k.split(' ').join('-').replace('(','').replace(')',''), $index)">
                        <div class="imgDiv">
                            <img src="/images/phones/sub-family/xs/{{k.split(' ').join('-').replace('(','').replace(')','-').toLowerCase()}}.png">
                        </div>
                        <p><a>{{k}}</a></p>
                    </li>
</ul>


$scope.showData = function (item, index) {              

}

Мне нужно добавить код для отображения цвета фона для определенного li на выбор пользователя, а затем скрыть цвет фона от предыдущего выбранного li.

1 Ответ

0 голосов
/ 27 апреля 2018

Вы можете сделать что-то вроде следующего

файл JS

var app = angular.module('app', []);

app.controller('NavigationController', function ($scope) 
{
    // Must use a wrapper object, otherwise "activeItem" won't work
    $scope.states = {};
    $scope.states.activeItem = 'item1';
    $scope.items = [{
        id: 'item1',
        title: 'Home'
    }, {
        id: 'item2',
        title: 'Public Rooms'
    }, {
        id: 'item3',
        title: 'My Rooms'
    }];
});

HTML-файл

<body ng-app="app">
    <div ng:controller="NavigationController">
        <p>
            Your active menu item: <span class="highlightOne">{{states.activeItem}}</span>
        </p>
        <ul class="navigation">
            <li ng-repeat="item in items" class="item" ng-class="{'active': item.id == states.activeItem}" ng-click="states.activeItem=item.id">{{item.title}}</li>
        </ul>
    </div>
</body>

CSS-файл

ul.navigation li
{
    background: #f6f6f6;
    padding: 10px;
    margin: 2px 0;
    display: block;
    cursor: pointer;
}

    ul.navigation li.active
    {
        background: blue;
        color: #f6f6f6;
        display: block;
        padding: 10px;
    }

.highlightOne
{
    background: orange;
    font-size: 125%;
    margin: 5px;
    padding: 5px;
}

.navigation
{
    display: block;
    background: #666;
    margin: 10px;
    padding: 10px;
    width: 40%;
}

p
{
    margin: 10px 0 20px;
}

Для ссылки на код, пожалуйста, отметьте "https://codepen.io/SkiWether/pen/lzjAq".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...