2013-03-18 1 views
1

Je suis nouveau sur Angularjs, et j'essaye de créer un lecteur simple en utilisant la bibliothèque soundManager.angularjs avec soundmanager, mise à jour de DOM sur wheleloading

Le problème auquel je suis confronté concerne la mise à jour du DOM, pendant le chargement/la lecture du son.

L'objet soundManager Sound expose des propriétés dynamiques telles que bytesLoaded ou position et j'essaie de comprendre comment les lier au DOM.

J'ai essayé avec quelque chose comme

<span ng-bind="sound.bytesLoaded"></span> 

sound est une instance de l'objet sonore attaché à la racine $scope, mais il semble que le DOM est mis à jour qu'une seule fois de cette manière.

Répondre

2

Le problème est peut-être que le sound.bytesLoaded est mis à jour dans le monde non-angulaire, comme la fonction de rappel des octets chargés ou certaines méthodes de rappel similaires qui est un monde non-angulaire.

Pour que la vue soit mise à jour lors de la mise à jour de la valeur du modèle dans un monde non angulaire, vous devrez peut-être appeler la méthode $scope.$apply à partir de la méthode de rappel du SM2.

Certains pseudo-code:

sound.on('bytesLoaded', function(bytesLoaded){ 
    // Imagine you have some similar kind of the callback in SM2, 
    // where you will be updating the sound.bytestLoaded property. 
    sound.bytesLoaded = bytesLoaded; 
    $scope.$apply(); // please make sure you call have this line 
        // where you are updating the bytesLoaded property. 

}) 
+0

Merci pour la réponse. Cela semble logique pour moi, même si je ne suis pas très confiant avec la méthode '$ apply'. Je me sens comme le doc Angularjs est un peu difficile à explorer. –

+0

Cela pourrait être utile pour d'autres: http://docs.angularjs.org/misc/faq (Section: $ watch & $ apply) –