У меня есть директива, вложенная в ng-repeat. Элемент ng-repeat передается в директиву. Я пытаюсь создать шаблон директивы (для тестирования) или templateUrl с переменными элементами на основе ключа/значения в элементе, переданном в директиву. По существу, если item.number> 50 сделать кнопку red else, сделайте ее синей.Изменение элементов в шаблоне директивы на основе данных области
Возможно, вы исправите неправильный инструмент. Цель состоит в том, чтобы использовать что-то подобное для изменения тегов Bootstrap. Например логика:
if item.number > 50:
class="btn btn-danger"
else:
class="btn btn-success"
Если возможно, я пытаюсь решить эту проблему с помощью templateUrl: как я хотел бы кнопку для запуска начальной загрузки модальный и много, чтобы вписаться в основной вариант шаблона. Гораздо чище передавать шаблоны отдельных переменных области.
Это JSFiddle, который пытается описать проблему.
HTML
<div ng-controller="TableCtrl">
<table>
<thead>
<tr>
<th>#</th>
<th>Button</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="item in buttons">
<td>{{item.id}}</td>
<td new-button item='item'></td>
</tr>
</tbody>
</table>
</div>
app.js
var myApp = angular.module('myApp', []);
function TableCtrl($scope) {
$scope.buttons = {
button1: {
id: 1,
number: '10',
},
button2: {
id: 2,
munber: '85',
}
};
};
myApp.directive('newButton', function() {
return {
restrict: 'A',
replace: true,
scope: {
item: '=',
},
link: function(elem, attrs, scope) {
// This is most likely not the right location for this
/*if (item.number > 50) {
button.color = red
}, else {
button.color = blue
}; */
},
template: '<td><button type="button">{{button.color}}</button></td>'
}
});
Вы правильно, нг-класс работает для класса части. Моя последующая проблема заключается в том, что при использовании диаграмм прогресса Angular UI Boostrap они перемещают цвет из класса и делают его собственным типом = "". Есть ли способ сделать подобную логику с помощью своего пользовательского элемента? uib-progressbar> –
davidcapatch
' uib-progressbar>' –
bcherny
Это будет сделано! Заблудившись в документации, вы пропустите маленькие/простые вещи. Благодарю вас. – davidcapatch