Was ist die Alternative für jquery each in anglejs?

Lesezeit: 2 Minuten

Benutzer-Avatar
Amb

Ich möchte jquery aus meiner App entfernen. Aber ich möchte $ .each in anglejs ersetzen … Wie kann ich Dom-Elemente durchlaufen? Hier habe ich meinen Code hinzugefügt. Ich möchte ihn von jquery in anglejs konvertieren

app.directive('activeu', function($location) {
        return function ($scope, element, attrs) {
            var menuMain = $scope.$parent.menuMain;
            var fullpath = $location.path().split("https://stackoverflow.com/");
            var current = fullpath[2];

            setTimeout(function() {
                $(".nav li a").each(function() {
                    if ($(this).attr('href') ==  '#!/page/' + current) {
                        $(this).parent().addClass('active');
                        $(this).closest('li.root-li').addClass('active');

                        if ($(this).closest('li.parent').length > 0) {
                            $(this).closest('li.parent').addClass('active');
                        }
                    }
                });

                $(".nav li a").on('click', function() {
                    current = $(this).attr('href');
                    $("#pages-menu .navigation li").each(function() {
                        if ($(this).hasClass('active')) {
                            $(this).removeClass('active');
                        }
                    });

                    $(".nav li a").each(function() {
                        if ($(this).attr('href') ==  current) {
                            $(this).parent().addClass('active');
                            $(this).closest('li.root-li').addClass('active');

                            if ($(this).closest('li.parent').length > 0) {
                                $(this).closest('li.parent').addClass('active');
                            }
                        }
                    });
                });
            }, 500);
        };
    });

angular.forEach(angular.element("li a"), function(value, key){
     var a = angular.element(value);
     a.addClass('ss');
});

Sie können es in ein Objekt umwandeln und dann verwenden.

Sie können die Loop-Anweisung verwenden eckig.forEach()

var values = {name: 'misko', gender: 'male'};
angular.forEach(values, function(value, key){
  console.log(key + ': ' + value);
});

  • es gibt mir wie var htm = “Login“.. Ich kann darauf zugreifen wie htm.href.. aber stattdessen, wenn ich darauf zugreifen möchte wie htm.attr( ‘href’), wie kann ich das machen??

    – Amb

    9. Juli 2013 um 6:09 Uhr


  • @amss Ich denke, Sie müssen einige weitere Details mitteilen, welche Art von Daten Sie iterieren möchten und was die gewünschte Ausgabe ist

    – Arun P. Johny

    9. Juli 2013 um 6:21 Uhr

  • Ich habe meine Frage bearbeitet … Ich möchte jquery each durch angle.forEach ersetzen

    – Amb

    9. Juli 2013 um 6:37 Uhr

  • @amss Da es sich um eine Direktive handelt und Sie eine Dom-Manipulation durchführen, scheint jQuery hier am besten geeignet zu sein

    – Arun P. Johny

    9. Juli 2013 um 6:43 Uhr

  • @amss angle js verwendet auch eine gekürzte Version von jQuery, wenn Sie selbst keine einbinden. Wenn Sie dies jedoch nicht möchten, müssen Sie eine Raw-Dom-Manipulation durchführen

    – Arun P. Johny

    9. Juli 2013 um 7:20 Uhr

1145540cookie-checkWas ist die Alternative für jquery each in anglejs?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy