将 css 类添加到 Angularjs 中的标记元素中

Add css class to marked elements in Angularjs

本文关键字:元素 Angularjs css 添加      更新时间:2023-09-26

我有一个待办事项列表,我希望当我单击"罢工标记"按钮时,所有选中的元素都会被删除。

这是我的代码索引.html

 <!DOCTYPE html>
<html>
<head>
<script src= "http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script>
    <style>
        .strike {
    text-decoration: line-through;
        }
    </style>
</head>
<body ng-app="myApp" ng-controller="todoCtrl">
<h2>My Todo List</h2>
<div ng-repeat="x in todoList">
    <input type="checkbox" ng-model="x.done"><span  ng-class="" ng-bind="x.todoText"></span>
</div>
<p>
    <button ng-click="strike()">Strike marked</button>
</p>

<script src="myNoteCtrl.js"></script>
</body>
</html>

这是myNoteCtrl.js

var app = angular.module('myApp', []); 
app.controller('todoCtrl', function($scope) {
    $scope.todoList = [{todoText:'Clean House', done:false},{todoText:'Clean House2', done:false}];

        $scope.strike = function() {
        var oldList = $scope.todoList;
        angular.forEach(oldList, function(x) {
            if (!x.done) x.todoText.class="strike";
        });
    };
});

不应在任务的字符串todoText上添加 class 属性。相反,您应该向任务添加striked布尔属性:

$scope.strike = function() {
    angular.forEach($scope.todoList, function(x) {
        if (!x.done) x.striked = true;
    });
};

然后使用此布尔值添加 css 类:

<span ng-class="{strike: x.striked}" ng-bind="x.todoText"></span>

你需要使用 ng-class 来实现相同的目的

ng-class="{isStriked : x.done}" 

法典

$scope.strike = function() {
    var oldList = $scope.todoList;
    angular.forEach(oldList, function(x) {
      x.isStriked = x.done;
    });
};

工作普伦克