我想做一個練習,其中有4個不同的顏色框和1個主框下面是空白的,當你點擊其中一個彩色框時,主箱子變成你剛纔點擊的箱子的顏色。這似乎是一塊用jQuery的蛋糕,但我不知道如何與角如何動態添加類到其他元素點擊角度
(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;
}
有一個例子,基本上在ng-class的文檔頁面上做這件事。 https://docs.angularjs.org/api/ng/directive/ng類 – Claies
我剛剛意識到我的錯誤不是ngClass,但沒有將mainBox作爲ngController * facePalm的一部分* – WinchenzoMagnifico