Переписать простой код jquery в угловом стиле

0

У меня есть код jquery, который проверяет класс .slide на pageload. У меня есть классы .slide внутри моих шаблонов, которые он не находит, и я пытаюсь найти способ заставить их найти его. (возможно, создав директиву?)

Если у кого есть какие-то идеи, я бы очень признателен.

Код выглядит следующим образом:

var items = $('.slide');
var content = $('.content');

function open() {
    $(items).removeClass('close').addClass('open');
}

function close() {
    $(items).removeClass('open').addClass('close');
}

$('#navToggle').on(clickevent, function(event) {
    event.stopPropagation();
    event.preventDefault();
    if (content.hasClass('open')) {
        close();
    } else {
        open();
    }
});
content.click(function() {
    if (content.hasClass('open')) {
        close();
    }
});
  • 0
    Можете ли вы добавить jsFiddle или plunkr? Вы получаете какую-либо ошибку или плагин просто не работает?
  • 0
    Никогда не говорил, что плагин не работает. Плагин запускает это при загрузке страниц индекса. Не заканчивается поиск контента .slide в шаблонах, загруженных после этого. @pravee-n Pravee-н
Показать ещё 10 комментариев

1 ответ

0

Вы можете создать директиву с тем же именем, что и имя вашего класса:

Скажем, у вас есть два промежутка с одним, которое вам нужно отличить, используя класс myclass:

<div ng-app="ClassExample" ng-controller="someController">
    <span class="myclass myotherclass">target span</span><br/>
    <span class="myotherclass">other span</span>
</div>

Затем сопроводительный код js будет включать определение директивы, используя имя класса 'myclass', и вы можете ограничить эту директиву классами, используя ограничение: 'C':

angular.module('ClassExample',[]).directive('myclass', function() {
    return {
        template:'hello world',
        restrict: 'C'
    };

}).controller('someController',function() {

});

Вот скрипка: https://jsfiddle.net/1L3h8y7s/1/

Ещё вопросы

Сообщество Overcoder
Наверх
Меню