您可以使用 ng-class 角度指令应用条件类。
删除所有应按条件应用的类。将这些类添加为ng-class。
但在您的情况下,您需要在重复语句之前应用该类。在这种情况下,由于它是一个可以包含不同状态的数组,因此面板 div 只能显示一种状态。您可以使用数组的第 0 个元素或其他任何元素。我考虑过第 0 个。
app.directive('showHide', function() {
return {
restrict: 'E',
scope: {
items : '=',
},
template:
`<div class="panel"
ng-class="{'panel-danger': items[0].Status === 'Negative',
'panel-default': items[0].Status === 'Positive'}">
<div class="panel-heading panel-height" ng-repeat="item in items">
<h3 class = "panel-title">
<p class="font">ID: {{item.Id}}</p></h3><br>
<p class="font">DESCRIPTION: {{item.Desc}}</p><br>
<p class="font">STATUS: {{item.Status}}</p><br>
</div></div></div>`,
};
});
更新
为指令创建一个新的模板文件。而不是在指令中包含模板。
show-hide-directive.js
app.directive('showHide', function() {
return {
restrict: 'E',
scope: {
items : '=',
},
templateUrl: 'show-hide-directive.html' // <-- Path to the template html file
};
});
show-hide-directive.html
<div class="panel" ng-class="{'panel-danger': items[0].Status === 'Negative', 'panel-default': items[0].Status === 'Positive'}">
<div class="panel-heading panel-height" ng-repeat="item in items">
<h3 class = "panel-title">
<p class="font">ID: {{item.Id}}</p>
</h3>
<br>
<p class="font">DESCRIPTION: {{item.Desc}}</p><br>
<p class="font">STATUS: {{item.Status}}</p><br>
</div>
</div>