Вы можете применять условные классы, используя угловую директиву ng-class .
Удалите все классы, которые должны применяться при условии.Добавьте эти классы как ng-class
.
Но в вашем случае вам нужно применить класс перед оператором repeat.В этом случае, поскольку это массив, который может содержать другое состояние, панель div может показывать только один статус.Это вы можете взять либо с 0-м элементом массива, либо с чем-либо еще.Я рассмотрел 0th.
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>`,
};
});
UPDATE
Создать новый файл шаблона для директивы.Вместо использования шаблона в директиве.
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>