这是我的 HTML 代码的片段。
<div ng-repeat="boxName in boxNameList">
<div ng-class="myBoxes.{{boxName}}">{{boxName}}</div>
</div>
我正在尝试做的事情: 我使用上面编写的代码段创建了 3 个 div 元素,它们将位于屏幕顶部。每个 div 元素将被赋予一个使用 css 的盒子的形状。box(div) 可以将红色作为其背景,也可以将黑色作为其背景。
两种颜色的 CSS 是:
.redBackground{
background-color: red;
}
.blackBackground{
background-color: black;
}
这是我的控制器的一个片段:
$scope.boxNameList=['Box1','Box2','Box3'];
$scope.myBoxes={
Box1: "redBackground",
Box2: "blackBackground",
Box3: "blackBackground"
}
在此示例中,我将其制作$scope.myBoxes
为静态 Json,但在运行时我计划生成 Json 代码,以便我可以动态地将背景颜色分配给我的盒子。
我面临的问题:问题是我根本看不到有颜色的盒子。如您所见,本例中的 ng-class 变量名称也是动态生成的。如果我不使用 ng-repeat 并且不动态生成 ng-class 变量名,那么它可以正常工作。例如,当我动态更改变量的值然后它完美地工作时,下面给出的myBoxes.Box1
myBoxes.Box2
片段myBoxes.Box3
。
<div ng-class="myBoxes.Box1">Box1</div>
<div ng-class="myBoxes.Box2">Box2</div>
<div ng-class="myBoxes.Box3">Box3</div>
但是,如果我动态生成 ng-class 变量"myBoxes.{{boxName}}"
,那么它的行为就不像变量。我相信会有更好的方法来实现我正在尝试做的事情,但是经过数小时的谷歌搜索/反复试验后,我无法找到它。如果有人可以帮助我,我会很高兴。