2013-03-18 3 views
1

Я новичок в Angularjs, и я пытаюсь создать простой плеер с использованием библиотеки soundManager.angularjs с soundmanager, обновление DOM при загрузке

Проблема, с которой я столкнулся, - это обновление DOM во время загрузки/воспроизведения звука.

Объект soundManager Sound предоставляет некоторые динамические свойства, такие как bytesLoaded или position, и я пытаюсь выяснить, как связать их с DOM.

Я пытался что-то вроде

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

где sound является экземпляром звукового объекта, прикрепленного к корню $scope, но мне кажется, DOM обновляется только один раз таким образом.

ответ

2

Проблема может заключаться в том, что sound.bytesLoaded обновляется в немагнитном мире, например, функция обратного вызова загруженных байтов или некоторые аналогичные методы обратного вызова, которые являются не угловыми.

Чтобы обновить представление при обновлении значения модели в немагнитном мире, вам может потребоваться вызвать метод $scope.$apply из метода обратного вызова SM2.

Некоторые псевдо-код:

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

Спасибо за ответы. Мне кажется, это имеет смысл, даже если я не очень уверен в методе '$ apply'. Я чувствую, что документ Angularjs немного изучен. –

+0

Это может быть полезно для других: http://docs.angularjs.org/misc/faq (раздел: $ watch & $ apply) –

 Смежные вопросы

  • Нет связанных вопросов^_^