Вы можете, если хотите, вместо того, чтобы использовать Javascript для манипулирования классами, чтобы показать и скрыть ваши текстовые кавычки, передать свои кавычки в вашу директиву и получить указание самой директивы, что показывать, а что нет (может бытьболее «угловатый» способ ведения дел).
Например, что-то вроде следующей директивы:
app.directive('myCarousel', function () {
return {
scope: {
quotes: '<'
},
templateUrl: 'myCarousel.html',
controllerAs: 'ctrl',
controller: function($scope) {
let ctrl = this;
ctrl.previousQuote = previousQuote;
ctrl.nextQuote = nextQuote;
let selectedQuoteId = 0;
ctrl.selectedQuote = $scope.quotes[selectedQuoteId];
function previousQuote() {
if (selectedQuoteId !== 0) {
selectedQuoteId--;
ctrl.selectedQuote = $scope.quotes[selectedQuoteId];
}
}
function nextQuote() {
if (selectedQuoteId + 1 < $scope.quotes.length) {
selectedQuoteId++;
ctrl.selectedQuote = $scope.quotes[selectedQuoteId];
}
}
}
}
});
И шаблон myCarousel.html:
<div>
<ol class="content">
<li>
"{{ctrl.selectedQuote.quote}}"
<br /> <div class="quoteLine"></div> <span class="boldText"> {{ctrl.selectedQuote.person}} </span>
</li>
</ol>
<button ng-click="ctrl.previousQuote()"><</button>
<button ng-click="ctrl.nextQuote()">></button>
</div>
Это выясняет, какой объект котировки выбран в данный момент (selectedQuote), а затем выводит его в шаблон.
Затем вы можете просто передать данные цитаты из любого места.
Если вызаинтересованы, вы можете просмотреть его в действии на этом Plunker: https://plnkr.co/edit/vA80sTdjwClWvF4T4dbd