2014-02-16 1 views
0

Я в процессе переноса приложения, обработанного тремя JS, в Ember, все было в порядке с одним исключением.Использование requestAnimationFrame в приложении Emberjs

Оригинальная JS имела следующий functon:

function animate(){ 
    requestAnimationFrame(animate); 
    render(); 
} 

Метод Эмбер очень похож:

.... 
animate: function() { 
    var view = this; 
    requestAnimationFrame(view.animate); 
    view.render(); 
}, 
.... 

У меня есть проблема в том, что в поле зрения Emberjs, первый запуск корректно сопоставляется метод рендеринга, когда происходит второй прогон, var view = this привязан к объекту окна, а не к объекту представления Ember, и поэтому метод анимации не запускается.

Есть ли способ отображения непосредственно к методу объекта Ember, не полагаясь на this

ответ

0

Вы сравнивая две разные вещи здесь, функция присваивается свойству на хэш-функции к области видимости своего родителя.

Функция, присвоенная собственности, может быть запущена только с помощью instance.property.

Функция, привязанная к ее родительскому объекту, доступна в любом месте в пределах ее родителя.

0
animate: function(context) { 
    window.requestAnimationFrame(function(){context.animate(context)}); 
    context.render(); 
}, 

и при первом вызове .animate() вы должны передать параметр контекста вы заинтересованы в