AngularJS - 应用类onclick并保持应用,或再次单击时删除

时间:2013-09-19 16:15:31

标签: javascript angularjs

我将onclick上的一个类应用于我的自定义元素,我想保持它的应用。就像有一堆<event>元素一样,当我点击其他元素时,前一个元素丢失了selected类。那是我无法让它一次将selected类应用于多个类。

这是我的观看代码:

<event class="event" ng-repeat="event in events" event="{{ event }}"
       ng-class="{'selected' : $index == selected}"
       ng-click="selectEvent($index, event)">
    {{ event }}
</event>

这是我的控制器

myApp.controller('MyCtrl', function ($scope, $http) {
    $scope.selectEvent = function($index, event) {
        $scope.selected = $index;
        console.log(event);
    }
});

此外,我还希望在再次点击特定<event>时删除该课程。

1 个答案:

答案 0 :(得分:1)

您只有一条数据($scope.selected)跟踪选择。每次单击新元素时,都会覆盖先前的选择。

如果您希望每个事件都具有单独的选定/未选择状态,则必须创建允许该事件的数据结构。

this小提琴中,我将事件定义为:

    $scope.events = [
        {name: 'event1', selected: false},
        {name: 'event2', selected: false},
        {name: 'event3', selected: false}
    ];

我认为它可以按照您的意图运作。