これが私の HTML コードのスニペットです。
<div ng-repeat="boxName in boxNameList">
<div ng-class="myBoxes.{{boxName}}">{{boxName}}</div>
</div>
私がやろうとしていること: 上記のスニペットを使用して、画面の上部に表示される 3 つの div 要素を作成しました。各 div 要素には、css を使用してボックスの形状が与えられます。ボックス (div) は、背景として赤色または黒色のいずれかを使用できます。
2 色の 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}}"
と、変数のように動作しません。私がやろうとしていることを達成するためのより良い方法があると確信していますが、何時間にもわたるグーグル/試行錯誤の後でそれを見つけることができませんでした. 誰かが私を助けてくれたらうれしいです。