2016-07-12 11 views
0

Hallo ich bin neu bei angularjs. Ich benutze eckige Version 1. Ich habe und Anwendung, die Musik über http spielt.angularjs update ein einzelnes Element aus einer riesigen Liste

So zeigt es im Grunde Tausende von Songs in einer Liste als Miniaturbild, in dem jede Kachel Play/Pause-Tasten enthalten. Auch gibt es eine Fußzeile auf Mini-Player, die Play/Pause/Next-Tasten enthalten

Also meine Anforderung ist, dass, wie die Wiedergabe/Pause-Tasten auf Kachel von dieser riesigen Liste zu wechseln.

Momentan gebe ich eine Track-ID als ID für jede Kachel und aktualisiere das Element, indem ich die Klasse mit jquery umschalte. Es dauert zu lange, die Liste zu aktualisieren.

Kann mir jemand die beste Lösung dafür sagen. Vielen Dank im Voraus.

hier ist mein Beispielcode

var item = $('.pause-btn') 

    $('.pause-btn').removeClass('pause-btn') 

    $('div').find("[data-index='" + btoa('track_' + CurrentSongId) + "']").addClass('pause-btn') 
+0

Können Sie bitte etwas mehr Code hinzufügen oder einen Plunder bereitstellen? –

+0

Sie können die Play/Pause-Tasten für jeden Song teilen, z. B. eine Play/Pause-Komponente in der Fußzeile. Dann musst du den aktuellen Song "id" irgendwo an der Fußzeile speichern, vielleicht in einem Service. Und dann, wenn Sie auf "Wiedergabe/Pause" klicken, müssen Sie nur diese bestimmte "ID" erhalten und Ihre Aktionen ausführen. – rocketer

+0

@rocketer Ich habe das nicht verstanden. Kannst du es noch einmal erklären? –

Antwort

1

ich die folgende Beispiel verwenden würde

<div> 
    <p class=track.isPlaying==true?'pause':'play' ng-click=update(track)> 
    <img src="albumart.jpeg"> 
    </p> 
    </div> 


//on controiller 
    $scope.update=function(track) 
    { 
    track.isPlaying=!track.isPlaying 
    } 
+0

Ja, das hat für mich funktioniert –

0

Sie Beispielcodes nichts mit AngularJS zu tun haben, ich denke, Sie so etwas wie dies erreichen möchten:

$('div') 
.find("[data-index='" + btoa('track_' + CurrentSongId) + "']") 
.addClass('pause-btn') 
.siblings() 
.removeClass('pause-btn'); 
Verwandte Themen