当前位置: 首页 > 面试题库 >

AngularJs-关于在点击时添加活动类的最佳实践(ng-repeat)

束涵涤
2023-03-14
问题内容

我想在列表中单击添加活动类,我尝试了以下代码,但它在所有项目中添加了活动类:/:

HTML:

<div class="filters_ct" ng-controller="selectFilter">
    <ul>
        <li ng-repeat="filters in filter"  ng-click="select(item)" ng-class="{sel: item == selected}">
            <span class="filters_ct_status"></span>
            {{filters.time}}
        </li>
    </ul>
</div>

  var filters = [
            {
                'filterId': 1,
                'time': 'last 24 hours',
            },
            {
                'filterId': 2,
                'time': 'all',
            },
            {
                'filterId': 3,
                'time': 'last hour',
            },
            {
                'filterId': 4,
                'time': 'today',
            },
            {
                'filterId': 5,
                'time': 'yersteday',
            }
        ];


function selectFilter($scope) {

    $scope.items = ['filters'];
    $scope.selected = $scope.items[0];

    $scope.select= function(item) {
       $scope.selected = item; 
    };

}

请给我一些帮助。

谢谢


问题答案:

最好的解决方案是通过角度$index作为目标,即对象在数组中的索引/位置。

HTML

<div ng-app='app' class="filters_ct" ng-controller="selectFilter">
    <ul>
        <li ng-repeat="filter in filters" ng-click="select($index)" ng-class="{sel: $index == selected}">
            <span class="filters_ct_status"></span>
            {{filter.time}}
        </li>
    </ul>
</div>

JS /控制器

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

app.controller('selectFilter', function($scope) {
var filters = [
            {
                'filterId': 1,
                'time': 'last 24 hours',
            },
            {
                'filterId': 2,
                'time': 'all',
            },
            {
                'filterId': 3,
                'time': 'last hour',
            },
            {
                'filterId': 4,
                'time': 'today',
            },
            {
                'filterId': 5,
                'time': 'yersteday',
            }
        ];

    $scope.filters = filters;
    $scope.selected = 0;

    $scope.select= function(index) {
       $scope.selected = index; 
    };
});

JSFIDDLE



 类似资料:
  • 保存package.json依赖项的最佳实践是什么? 例如,我看到很多依赖项是不固定的,比如:

  • 问题内容: 我正在阅读 http://www.alexrothenberg.com/2013/02/11/the-magic-behind-angularjs- dependency-injection.html ,事实证明,如果您缩小JavaScript的大小,angularjs依赖项注入会出现问题,我想知道是否 你应该使用 总而言之,我认为第二个片段是针对angularjs的旧版本的,但是..

  • 我理解如何(以及为什么)在JSX中添加空白,但我想知道什么是最佳实践,或者是否有任何真正的区别? 将两个元素都包裹在一个跨度中 将它们添加到一行中 用JS添加空间

  • 我即将制作我的第一个Android应用程序,我目前正在阅读有关活动和片段的信息。我打算使用Lollipop抽屉菜单功能在我的应用程序中加载不同功能的不同屏幕。像设置、关于、添加新x、浏览x等。我的导航抽屉应该为每个项目加载不同的活动单击还是加载新片段? 我所有的屏幕都有相同的风格,但内容明显不同。 如果我加载一个新活动,我是否会将导航抽屉“丢失”到一边?或者它是否始终存在,因为我希望它可以从应用程

  • 我正在开发一个可视化引擎(简单的CAD风格)(使用python和pyopengl绑定),可以同时显示和动画多达10-20个身体。我使用VBO数据对象来存储顶点数据并显示每个主体。我想知道为VBO分配颜色的最佳(最实用、最简单、成本更低的GPU)方法是什么。每个机身都有统一的颜色,外观可以设置为透明-可选。据我所知,这可以用以下方法完成(我测试了方法1和2): GLF(R、G、B、A) GLMATE

  • 问题内容: 我一直在学习有关CSS的SitePoint书。 这些示例让我印象深刻的是使用ID作为CSS选择器。 我已经完成了一些CSS设计工作,我总是发现使用Class作为选择器更容易,更通用。 也许是一个.Net的东西,因为我们并不总是可以控制元素的ID … 这是使用CLASS或ID作为选择器的最佳实践吗? 问题答案: 我猜他们在示例中总是使用id,因为它不那么模棱两可。您知道他们正在专门讨论