javascript - 如何使用 Angular 在单击时动态地将类添加到其他元素

标签 javascript angularjs

我正在尝试做一个练习,其中有 4 个不同颜色的框和它们下面的 1 个主框是空白的,当您单击其中一个彩色框时,主框将更改为您刚刚单击的框的颜色在。这对于 jQuery 来说似乎是小菜一碟,但我不知道如何使用 Angular 做到这一点

(function() {
  'use strict';

function angularBoxesCtrl() {
  var vm = this;
  vm.mainBoxColor;

  vm.logClass = function(e) {
    var boxColor = e.target.classList[1];
    vm.mainBoxColor = boxColor;
    console.log(vm.mainBoxColor);
  }

}



angular.module('angularBoxes', [])
  .controller('angularBoxesCtrl', [
    angularBoxesCtrl
    ]);


})();

HTML

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Angular Boxes</title>
  <link rel="stylesheet" href="styles.css">
</head>
<body ng-app="angularBoxes">
  <div ng-controller="angularBoxesCtrl as vm" class="boxHolder">
    <div ng-click="vm.logClass($event)" class="box green"></div>
    <div ng-click="vm.logClass($event)" class="box blue"></div>
    <div ng-click="vm.logClass($event)" class="box red"></div>
    <div ng-click="vm.logClass($event)" class="box yellow"></div>
  </div>
  <div class="mainBox" ng-class></div>

  <!-- scripts -->
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.7/angular.js"></script>
<script src="app.js"></script>

</body>
</html>

CSS

div {
  box-sizing: border-box;
}
.boxHolder {
  border: 1px solid black;
  text-align: center;
  font-size: 0;
}

.box {
  width: 180px;
  height: 180px;
  display: inline-block;
  border: 1px solid black;
  margin: 4px;
}

.green {
  background-color: green;
}

.blue {
  background-color: blue;
}

.red {
  background-color: red;
}

.yellow {
  background-color: yellow;
}

.mainBox {
  width: 400px;
  height: 400px;
  margin: 0 auto;
  border: 1px solid black;
  position: relative;
  top: 80px;
}

最佳答案

您可以尝试此代码。

<!doctype html>
<html ng-app>
  <head>
    <script src="http://code.angularjs.org/1.2.6/angular.min.js"></script>
 </head>

 <body>
  <input type="button" value="Red" ng-click="myStyle={background:'red'}">
  <input type="button" value="Green" ng-click="myStyle={background:'green'}">
  <input type="button" value="Blue" ng-click="myStyle={background:'blue'}">
  <input type="button" value="Yellow" ng-click="myStyle={background:'yellow'}">
  <input type="button" value="Lime" ng-click="myStyle={background:'lime'}">
  <input type="button" value="Magenta" ng-click="myStyle={background:'magenta'}">
  <input type="button" value="Pink" ng-click="myStyle={background:'pink'}">
  <input type="button" value="White" ng-click="myStyle={background:'white'}"> 

  <div ng-style="myStyle" >
    </BR></BR></BR></BR></BR>
    <Center>
    <h1>Hello</BR>
     C-Sharp</BR>
     Corner</BR>
    POST BY: Punit Gajjar
    </H1></center></BR></BR></BR></BR></BR>
   </div>
 </body>
</html>

关于javascript - 如何使用 Angular 在单击时动态地将类添加到其他元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34715395/

相关文章:

javascript - -- 存储我在 React 中使用的 DOM 元素,这样我就不会一直拉取它们?

javascript - 仅当选中所有必填框时才允许从按钮打印 list

javascript - 如何在针对 JavaScript 的 Kotlin 中使用依赖注入(inject)?

javascript - Felixge/Node-Mysql 独立连接文件

angularjs - angular js中的bootstrap星级

javascript - 如何根据元素的文本内容切换 AngularJS 中的可见性?

javascript - 使用 ng-bind-html 访问添加到 DOM 的元素

javascript - Angular routeParams不起作用URL正在更改

javascript - ng-文件上传跨域错误

javascript - Angular JS 绑定(bind)等待输入